to write a valid memory pointer so instead let's try reading starting from controller to byteNUMBER_TOKEN then we end up using controller NUMBER_TOKEN byte NUMBER_TOKEN to encode the last byte of the map change function pointer we need to encode hex eNUMBER_TOKEN but we can't have values larger than one f in that first byte so let's try starting from controller NUMBER_TOKEN byte NUMBER_TOKEN. we face the same issue we need to encode NUMBER_TOKENf but we can't use the first byte of controller NUMBER_TOKEN to do so now let's try to start at controller NUMBER_TOKEN byteNUMBER_TOKEN and it works if we start at NUMBER_TOKENf NUMBER_TOKENdb which is port NUMBER_TOKEN's analog stick y position then we are able to encode the map change function call along with the pointer to the end underscore NUMBER_TOKEN NUMBER_TOKEN string to specify the credit sequence the inputs look like this so that's fantastic one of the last things we need to do is determine what x position we need to have mario stand at in order to write eight zero four zero f zero db to next command pointer mario's coordinates are encoded as floating point numbers if we want to encode NUMBER_TOKEN fNUMBER_TOKENdb as a float this yields a position of negative NUMBER_TOKEN times NUMBER_TOKEN to the negative NUMBER_TOKENth power if you assume that a position change of one unit represents a meter then the distance between our desired position and zero is smaller than a planck length that is such an unfathomably small position that it is not at all realistic to ever achieve this position so it's a dead end we can't use mario's x position to write the controller data location to next command pointer in fact any valid memory pointer between eight zero zero zero zero zero zero zero and eight one seven f ffff which is the range for the game's normal main memory region is inaccessible for the same reason so this must mean that we can't use mario's x position to write any valid memory location to next command pointer except this isn't the only valid memory range the range i just provided actually refers to the gamecube's cached main memory the cache is essentially related to how memory is transferred between main memory and the cpu and there's actually an uncached main memory region located between addresses cNUMBER_TOKEN zeros and cNUMBER_TOKENffff the values stored here are usually identical to what is stored in cached main memory and that means controller data could also be stored there so instead of using eight zero four zero f zero db is it possible to write c zero four zero f zero db to next command pointer cNUMBER_TOKEN fNUMBER_TOKEN db corresponds with an x position of negative
NO_SEGMENT_TOKEN