GamingMaster
Banned via Warnings
- Joined
- Oct 3, 2013
- Messages
- 227
- NNID
- AbnormalAdept
is it possible to expand the css or sss or use a button for alt loading stg and char?
Last edited:
Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!
You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!
Possible to expand the CSS and SSS? Probably but very unrealistic at the time being.is it possible to expand the css or sss or use a button for alt loading stg and char?
You cant play as metal mario/giant dk, thats why I asked if you could replace them in particular, I wouldn't consider removing a playable characterProbably a question more suited for @fox324roja. He replaced Fox with Falco in a ROM hack. Pretty sick if you ask me.
Edit: key being replaced, not added. I won't take away tournament viability from this hack.
The limitation is that he (not even me) only knows how to modify character models and attributes. He can't transfer movesets to other characters. So replacing DK and MM is out of the question for now.You cant play as metal mario/giant dk, thats why I asked if you could replace them in particular, I wouldn't consider removing a playable character
Ah, alright then sorryThe limitation is that he (not even me) only knows how to modify character models and attributes. He can't transfer movesets to other characters. So replacing DK and MM is out of the question for now.
Yeah nice. I have a little routine for fixing the "restoration" of the stored value, since the stage index -> cursor position look up was baked in and not aware of any diddling on the SSS. I just replaced the LUT with a loop through the stage index list. I was going to clean it up this weekend to completely scrub the old function, but this seems to work fine on console so whatever.Nice catch! I just patched it as well.
Yeah, exactly like that.Like this?
(AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD) > (BBBBBBBB AAAAAAAA DDDDDDDD CCCCCCCC)
Ah, of course someone would've thought up ways to do this years ago. I've had success with finding image data in RAM and using bgrep to search through the uncompressed files, but skipping finding the image in RAM sounds like a big improvement. Tell me how it works out. The only thing I'd be worried about is stuff like this: notice the "blank lines" on sides of the image of the CSS portrait Luke90 posted above? Larger images seem to be stored in chunks like that (presumably to fit nicely into RDP texture memory?). I wonder if those OoT tools already take that into account?Crazy rom texture dump method
I changed 80133C34 to sb v0, 0x4b11 (s1) and edited what's loaded into t6 (jr ra - addiu v0, r0, ????) at 0x14E044 in the rom. You have these locations so I'm confused on where your code got complicated.Yeah nice. I have a little routine for fixing the "restoration" of the stored value, since the stage index -> cursor position look up was baked in and not aware of any diddling on the SSS. I just replaced the LUT with a loop through the stage index list. I was going to clean it up this weekend to completely scrub the old function, but this seems to work fine on console so whatever.
https://drive.google.com/folderview?id=0B8-I4Z0x-xXvc3JfZjdYd2Q2TXM&usp=sharing
It's still a CajeASM file, but it's easier to read that way. I can give you the compiled hex and offsets over the weekend if you don't have time to play around with it yourself.
.org 0x14f7a4 ; @ 80133C34
sb v0, 0x4b11(s1) ; remember sss cursor (also relied on s1)
.org 0x14E044 ; @801324D4
hex { 03E00008 24020000 } ; change "cursor table"
hex { 03E00008 24020007 } ;
hex { 03E00008 24020003 } ; What's happening here...
hex { 03E00008 24020005 } ; JR RA, ADDIU v0, r0, 0x????
hex { 03E00008 24020004 } ; 1. The code branches a line
hex { 03E00008 24020006 } ; 2. V0 holds (r0 + immediate)
hex { 03E00008 24020002 } ; 3. V0, cursor, stored later
hex { 03E00008 24020001 } ; Note: r0 is always 0 here
hex { 03E00008 24020008 }
hex { 24020009 03E00008 }
I'm pretty sure they're dumped in chunks too but I'll have to check on that.Ah, of course someone would've thought up ways to do this years ago. I've had success with finding image data in RAM and using bgrep to search through the uncompressed files, but skipping finding the image in RAM sounds like a big improvement. Tell me how it works out. The only thing I'd be worried about is stuff like this: notice the "blank lines" on sides of the image of the CSS portrait Luke90 posted above? Larger images seem to be stored in chunks like that (presumably to fit nicely into RDP texture memory?). I wonder if those OoT tools already take that into account?
Did you ever post this? I'd love to incorporate it (as would everyone else here cough THE_MAAFIA cough.Finally, I finished the "alternate character" mod I mentioned over the summer. Basically, you can hit Z on the SSS to load the polygon version of your character, and you can hit R to be Metal Mario or Giant DK. Anyways, relevant point being that in writing this I found the location/routines of the various button press handlers (i guess that's the proper way to describe it) specific to the SSS. These are nice places to put your function to button toggle stages
...ew(Of course, I think it's possible and not too difficult to make a "page 2" button. I could probably write a crude button in over the weekend: choose a "stage button" to be our page button (looking at you Mushroom Kingdom) hook into the "A Button" event handler, check if the cursor is on our stage button; if so, replace the stage list in memory with a new stage list; return to normal flow and do not take the "A is pressed" branch.
Unforunately, there's a huge problem with this simple Page 2 button: there's no way to show the player which page we're on. The stage icons are drawn once on SSS load, and I've found that routine. So maybe I can just pass new offsets to that routine and draw the icons over (if that routine is handling how the images are put into the RDP / if there's space / do i need to find a texture clear routine). But then if that works, I'll need to format a whole new set of images, which I'll have to copy into RAM. And there should be a routine that moves files from the ROM to RAM; then of course I'll need to figure out how to add to the filetable, and on and on).
So, to fixing storing the cursor position, you need to edit two SB function near your original edit:I changed 80133C34 to sb v0, 0x4b11 (s1) and edited what's loaded into t6 (jr ra - addiu v0, r0, ????) at 0x14E044 in the rom. You have these locations so I'm confused on where your code got complicated.
.org 0x0014F7A4
sb v0, 0x4B11(s1)
.org 0x0014F7C4
sb v0, 0x4B12(s1)
//A0 = Saved Stage Index for Cursor Position
//V0 = Cursor Position to be Return
//RA was restored off the the stack previously
.org 0x14E02C
//This puts the address of the first word of the stage index list into AT
//This also sets our i value to 0 in v0
fnInitialize:
lui at, 0x8013
ori at, at, 0x4644 //stage list pointer
or v0, r0, r0 //i=0
//Load the stage index byte at the current AT offset
//Compare to the saved stage index
//If match, jump to label "end"
loop:
lbu t6, 0x0003(at) //stage index (unchanged byte)
beq t6, a0, end //compare to saved index
//This is to be safe; I guess there's no reason why the stage index list needs to have
//the value in a0. Once we go through the loop 8 times, there's no reason to go any father
//if i =8 (jump to "fail")
failCheck:
ori t6, r0, 0x0008 //load delay; set limit for loop
beq t6, v0, fail //if 8th go, we're done.
//If the other to checks weren't passed
//increment the loop
loopInc:
addiu v0, v0, 0x1 //i++
beq r0, r0, loop //loop
addiu at, at, 0x4 //move pointer to next word in stage list
//we found our cursor value. it's already in V0, so return
end:
jr RA //we have a cursor value in v0 (it's i)
nop
//For some reason, this failed; just return position 0
fail:
jr RA
ori v0, r0, 0x0 //return cursor position of 0
You're right!I'm pretty sure they're dumped in chunks too but I'll have to check on that.
This weekend..Did you ever post this? I'd love to incorporate it (as would everyone else here cough THE_MAAFIA cough.
It'll be beautiful....ew
I understand haha. I just thought your way was above and beyond for no reason (although now I realize it's more advantageous since the "table" I use would have to be changed if I moved stages around). Both of our methods fix the problem.So, to fixing storing the cursor position...
Looking forward to it!This weekend..
Any chance you could let us know what changes you've added/plan on adding?
Second. Please. I'm tired of going to Peach's on accident.It would be cool if you got the stage select cursor to remember its position
Already fixed the cursor bug and I'm also using CajeASM to assemble my code now. I'll be getting rid of my patcher in favor of another one I've found online.Fireblaster ganas I posted a fix for the cursor bug like 20 posts back. It works fine for me on my everdrive, so I assume that if it works for jorgams as well, he'll include it in the next version.
Good job jorgasms. That SSS looks nice. I guess I better post the character stuff. I'll edit it in the post in a bit.
----------------------
Okay, here is it: https://drive.google.com/file/d/0B8-I4Z0x-xXvNGxmUzlzQzdNR1E/view?usp=sharing
That should be in the proper format to just add to the 19XXTE.txt file. Assuming that google drive doesn't mess with the formating, you should be able to just copy/paste the text in the 19XXTE.txt file
I quickly tested it to see if it was working, but I didn't look into the code to make sure the copied everything correctly after it compiled etc. If this doesn't work for you Cyjorg I'm linking the ASM at the end
Basically, this hack does three things
1) Turns off the L and R buttons on the SSS, so I have more buttons to use
2) Hitting "Z" on the SSS will cause you to be the Polygon version of whichever character you chose on the CSS
If you chose Mario or DK, hitting "R" on the SSS will cause you to be Metal Mario or Giant DK
3) When going back to the CSS or after a match, the polygon/Metal Mario/Giant DK character is return to the base, original character so the game doesn't crash
Bugs/Things I Find Annoying
ASM Files/Basic Explanations of what I did: https://drive.google.com/folderview?id=0B8-I4Z0x-xXvTGNmM0dFSXlHTWc&usp=sharing
- Polygon Stock Icons don't work
- Metal Mario/Polygons don't have alt colors, so everyone looks the same
- No way to switch back from polygon/mm/gdk on SSS; have to return to CSS (add an L button function later..?
Actually, instead of making separate roms for all of these options, it would be nice if he implemented the button activator codes to activate these codes by choice instead of having to switch roms.Also on a later update it would be cool to have 2 more roms made with the hitbox cheat enabled as an option like:
19xxte.n64
19xxte(Widescreen).n64
(HitBox)19xxte.n64
(Hitbox)19xxte(Widescreen).n64
This looks awesome, great work. My only nitpick is that Hyrule looks a little weird being the only stage shown at an angle, while all others are head-on views. Still much better than what we had to settle with before though.
Please make the stage in the top left Dreamland instead of Peachs. Also, get rid of Hyrule since its a terrible broken stage and replaces it with a better stage like Kirby Beta 2.Already fixed the cursor bug and I'm also using CajeASM to assemble my code now. I'll be getting rid of my patcher in favor of another one I've found online.
This is good stuff tehz!