tehz said: Here's a list of the zoom floats and the x position floats for the stage previews. I haven't found any y position things (despite how obvious the paired floats with the x-pos look), but that's probably due to the function that causes the stage to bob up and down. Click to expand...

tehz said: Also, I'd love to see how you handled the stage load manipulation! I'd be great if you could post a short explanation if/when you get the time. Meanwhile, I'll keep looking at your patch to see if I can figure it out for myself. Click to expand...

Code: lw v0,0x0000(t2) @t2 00000000 00000002 00000004 00000003 00000008 00000005 00000006 00000001 00000007

Code: #old lw v0,0x0000(t2) #new, the 0x0003 is there to grab the byte at 0x47 which is something, not 0x44, which is nothing (arbitrary offsets) lb v0,0x0003(t2)

Code: #original lui s1, $800A addiu s1, s1, $4ad0 sb v0, $000f(s1) #pseudo code 1. Make register s1 = 0x80130000 2. Add 0x4ad0 to s1. So s1 is now 0x80134adf. 3. Store the contents of v0 (the stage ID) 0xf from the memory location in s1. So store the stage ID at 0x80134adf

Code: #new nop lui s1, $800A sb v0, $4adf(s1) #pseudo code 1. Do nothing/blank line. 2. Make register s1 = 0x80130000 3. Store the contents of v0 (the stage ID) 0x4adf from the memory location in s1. So, store the stage ID at 0x80134adf.

Code: #newest lb v0, $0000(t2) lui s1, $800A sb v0, $4adf(s1) #pseudo code 1. Load the "stage to load" byte, as assigned by me 2. Make register s1 = 0x80130000 3. Store the contents of v0 (the stage ID) 0x4adf from the memory location in s1. So, store the stage ID at 0x80134adf.

Well that's helpful. I'll add this to the Code Set whenever I patch the bugs that have been pointed out by other users.I wrote this months ago and my notes are awful. I think I can explain it, though.When I first started this project, I quickly found out how to change the stages on the stage select screen. While swapping the existing stages worked flawlessly, trying to add in stages like FD caused the game to freeze because the textures would fail to load. After a little fiddling, I found the function that loads the Stage IDs on the SSS to display textures at 0x8013248C. By default the code is as follows.This instruction loads the stage ID from a table like the one above where the last byte is the stage ID. The instruction lw means "load word" which essentially takes 4 bytes from a memory location into a register. Because only the last byte matters, I changed the instruction from lw to lb, load byte.After both instructions are ran, the register v0 is the same (000000XX) which frees up the first 3 bytes in each word. Now, truthfully, I kind of lucked out with this part. The function that store the stage ID to be loaded (so when you press a on the stage select screen) is written inefficiently.This same function can be written with 2 instructions.Now because register t2 (the memory address that we got the stage ID into v0 from initially) has not been altered, I can do this.This allows me to say what stage will be loaded and what texture will be shown. For example, Battlefield (0E) replaces Sector Z (01) so it's table entry is 0E000001 where 0E is the stage to load and 01 is the texture to load.This took so long to type lol hope it helped.