I made a little test just to be sure of what really happens:
http://www.youtube.com/watch?v=1iGpoBnNzX8
In this video, I used the star count modifier GameShark code. The first half of the video shows what happens when you increase your star count from 0 to 120 stars, while the second half shows the opposite. As you can see, the game doesn't really check your star count for the door opening animation; if you had unlocked the door before, it stays unlocked even if you decrease your star count. Oddly enough, the existance of the beam of light from the Wing Cap course IS determined by your star count.
This makes DRybes' theory possible, but...
http://www.youtube.com/watch?v=A2AWwDCTtLo
In this second video, I used another GameShark code which lets you modify what stars you've gotten before (without altering your star count). This video proves that the game actually checks what stars have you gotten before, and according to this makes the door be locked or unlocked. This is also true for Yoshi and the cannon outside of the castle (I guess this also works with MIPS, the hallway Boo and the Hazy Maze Cave Toad).
According to this, Curtis' statement is correct. I hope this was understandable and actually helpful. :P
So considering the fact that there are 120 stars, which would require exactly 15 byte to store, it is likely that the 16th byte is used for <=8 binary informations too.
(Oops, I used a non-existing plural) :(
Likely candidates would be:
- first bowser defeated
- second bowser defeated
- unused (third bowser defeated)
- wing cap
- blue cap
- green cap
You used star modifier codes, so you should know how exactly those stars are stored in memory.
I suspect a structure like this:
Stage 1: Stars 1-7, a castle's secret star
Stage 2: Stars 1-7, secret star
How does it really look like?
I'll probably spend some time playing around with the game and a memory watcher tomorrow..
What the demo videos show is that changing the star count does not modify memory in the same way that collecting a star does and/or that all door checks are caluclated every time you collect a star. Getting 120 and still having doors locked... I'm sure they'd unlock if you collected a random star.
Actually the star count gets newly calculated every time you collect a star. That means having 120 (counter) and collecting the first one will set the star count to 1. Doors still won't open (except for 1 star doors) ;)
So the star count itself is actually pretty meaningless. The star collected flags count.
Door checks aren't calculated every time you collect a star, they are calculated every time you touch a door.
It seems like the maximum star count is 182 (counting the flags). I'm sure this information is old though.
The structure of the star modifier codes I used is like this:
7 stars from Course 1-15 = 105 stars
70 secret stars = 70 stars
In the second video, the file I used for testing had all 120 stars "legally" collected, without using any codes. If you watch closely, you'll notice that after I used the "0 stars" code I still had 5 secret stars collected, and when I used it again but changing the "0 stars" to "170 stars", I had 75 secret stars collected. The code is supposed to give you only 70 secret stars, so I'm guessing that 2 of those 5 extra stars came from MIPS, and the other 3 came from the Toads. This makes 180 stars the absolute total of stars stored in memory, unless there is another GameShark code that lets you get even more secret stars.
180 stars? So have we determined if some of those extra flags are for other non-star conditions like bowser 1 defeated, etc? If so then having the first or second big key might not be a memory state in itself, but having defeated bowser 1 or 2 is...
It's good that information is shared and discussion occurs. I'm going out there with ideas because, well why not explore everything? I've messed around with mupen and toad's tool a bit in my own search for feasible things like lowering star count in console runs (to no avail so far, granted). Memory corruption doesn't look like it's going to happen; if it is, it'll probably have something to do with a stage with infinite coins, since that data is probably close to the stars and progress flags in memory, if not directly adjacent (recall the screen that shows coin counts). Then again I'm not familiar with 255/1000 coins and how the overflows for that work, or how they behave in different types of stages.
No it's definitely at least 182 stars, there's space for 77 secret stars, I tested it.
The structure is like
Stage 1 - Bob-omb 7 bits equal 7 stars, 8th bit seems unused.
Stage 2 - 8 bit, 7 stars
...
Stage 15 - 8 bit, 7 stars
Then follow 11x7 castle secret stars.
Immidiately afterwards - coin counts / stage
Before all of that - flags for what doors have already been opened
I wonder which bits correspond to which secret stars because I know during development they had more courses planned and that's probably what that extra room is there for.
So, it looks like things with coins is out.
What someone needs to try now (I'd do it but don't have the knowledge), is making the game perform an opening on a door that's already opened (has the bit set), to see if it overflows and sets an adjacent flag, thus unlocking a different door. Although I'd guess it flips the flag out of code efficiency, it's possible that it adds 1 to the flag since a situation where a 1 flagged door recieves the opening treatment again would never happen in normal gameplay.
Just tried it; everything works normally. Turns out I was wrong about the key doors though, you lose your key when you open them and don't even get it back if you beat Bowser again.
You are confused about code efficiency, I think.
Ok, like I suspected there exists a value which let's the game know what the current stage is. If you enter Whomps Fortress f.e. and then change that value to Bobomb's Battlefield and collect a star it will count as a star in Bobomb's Battlefield instead.
This would theoretically allow us to collect stars in different stages - that means faster - and maybe to collect more than 120 stars.
Unfortunately I don't see much hope to change this value just by using glitches though.
Defined values for the stage value and their meanings:
0 - lobby, outside, ...
1 - 15 courses 1-15
16 - 18 pre-bowser levels and fights
19 - princess secret slide
20 - green switch palace
21 - red switch palace
22 - blue switch palace
23 - rainbow cruise like secret room
24 - secret aquarium
Dying sets it back to 0, as well as collecting a star, leaving a stage by pressing start and exiting the green switch palace by using the waterfall. A way to leave/enter stages without that value being set would be nice.
Exiting a course by Game Over leaves the value unchanged, only loading a save file then sets it back to 0. So a way to load a file without that value being set would also be nice. ^^
Hi guys, we are working on Bowser 1 fight for our 0 star TAS and Bowser does a "weird dance" at the start. It's slower when this happens. We have no idea how to manipulate him to not do the dance without wasting time.
If anyone knows how to do avoid the weird dance without wasting any time, we would greatly appreciate it if you told us.
As a side note, wasting a frame before entering the pipe avoids the dance, but I know it's possible without wasting frames.
[URL=http://www.abload.de/img/182stars17d.png]182 stars[/URL]
Every star has a number. Collecting a star with the number 7 while the current stage value is set to 17 (Bowser in the Fire Sea) gets you a normally unobtainable star.
There are still mistakes in this chart, as not every stage has a canon, but I'm too lazy to look it up and correct it. ;)
Keys are stored before stars in memory, so there's no way we could glitch keys by changing the stage value and then collecting a star. The key byte looks like this:
Bit 1 - ? Used
Bit 2 - ?
Bit 3 - ?
Bit 4 - ?
Bit 5 - Has Key 1
Bit 6 - Has Key 2
Bit 7 - Key 1 Used
Bit 8 - Key 2 Used
Using a key unsets bits 5 or 6, like previously mentioned by CBright.
@z0MG - That means I was editing the post, sorry for being unclear.
all i can think of is trying some alternate input towards the pipe that doesn't lose time or trying random inputs while dealing with the text at the start of the fight. of course, i doubt you aren't doing this already.
Yes. you said that it was decided when entering the castle, and it's not.
Why are you so sure of this, when three people who have ALL made full runs of this game are telling you that it's the case?
because all of them hate me, and if you read the rest of the post, wasting a frame before the pipe avoids the dance, so it's not decided when entering the castle
[URL=http://www.abload.de/img/182stars17d.png]182 stars[/URL]
Every star has a number. Collecting a star with the number 7 while the current stage value is set to 17 (Bowser in the Fire Sea) gets you a normally unobtainable star.
There are still mistakes in this chart, as not every stage has a canon, but I'm too lazy to look it up and correct it. ;)
Keys are stored before stars in memory, so there's no way we could glitch keys by changing the stage value and then collecting a star. The key byte looks like this:
Bit 1 - ? Used
Bit 2 - ?
Bit 3 - ?
Bit 4 - ?
Bit 5 - Has Key 1
Bit 6 - Has Key 2
Bit 7 - Key 1 Used
Bit 8 - Key 2 Used
Using a key unsets bits 5 or 6, like previously mentioned by CBright.
@z0MG - That means I was editing the post, sorry for being unclear.
Random comments on image: I assume you meant to give the cannon bit to WMotR and not the aquarium. Also wondering, although it's totally irrelevant, whether bit 8 gets set for lobby/outside's cannon, or if the grate's occurance is a function of whether stars (>)= 120.
I doubt loading a game with current stage set to something other than 0 would do much. Loading from menu / game over does a few special things, including defaulting extra life count and spawning you at the beginning of the castle path, that no other activity can, and I'm guessing a routine covers this. However you now have me thinking of ways the intro cutscene could be avoided (fruitless so far, and that's just conceptually).