• 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!

Ondo's CSS Workshop - Less Compressed CSPs

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
Compacted CSS

This CSS has one major change - it is 2,847 KB, down from Project M 3.6's 3,324 KB.

There are a couple minor visible changes as well - I've removed the shadows cast by the CSS icons; they looked good in vBrawl, but I don't think they work with the Project M background. Also, the flashing new icon is never visible, rather than appearing over any character that was unlockable in vBrawl that you've never played on your current save.

If you want to change the CSPs in this build, see the section on Making Efficient CSPs in this post.

I've put details of what exactly was changed in spoilers, for anyone who cares. Most useful if you want to make some or all of these changes in your own CSS, rather than starting from this one.

Changes to the CSPs:
CSPs are now 128x148, as the final 12 rows were not being displayed anyway. To accomplish this, the texture UVs of MenSelchrCchar4 had their Y components multiplied by 160/148.

Pixels that were not visible were removed, as mentioned in the Making Efficient CSPs section.

The CSP for Diddy Kong's new orange costume was converted from RGB5A3 to CMPR. Mr. Game & Watch's CSPs were all converted to CI4 - the file is 3KB larger than if all 9 were CMPR, but the higher quality seems worth the small price. (I used uncompressed versions from the HD Retexture Project as a starting point.)
Changes to sc_selcharacter.pac, just to make it smaller:
First, and easiest - MiscData[30] contains MenSelchrFaceA through MenSelchrFaceI; they are the models for the nine different sizes that faces can be, shrinking as you unlock more characters. For Project M, with 42 characters always available, only MenSelchrFaceI is needed - the others were deleted (from 3DModels, AnmChr, AnmClr, and AnmTexPat).

Another thing that saved a chunk of space is going through and switching the compression of everything in char_bust_tex_lz77 from LZ77 to ExtendedLZ77.

The MenSelchrFaceB.001 texture, in MiscData[30], is a copy of Mario's first CSP. It needs to exist (and have a palette) but is not shown. I replaced it with a 4x4 black square in CI4 format.

The various MenMainBack textures were deleted. They are from the old background that was replaced in Project M.

The model for "New!" was removed. (I don't think it makes any sense for Project M.) It was MenSelchrNew in the different sections of MiscData[30] - for the model (in 3DModels), I removed everything except one bone. The texture was deleted. For the animations (in AnmChr, AnmVis, and AnmClr), all the children of the animation were removed but the animation itself was not deleted. (If the model or animations are completely deleted, the game will freeze when going to the selection screen.)

MenSelchrCoin has 4 different animations, MenSelchrCoin_TopN__0 though MenSelchrCoin_TopN__3. For AnmClr, these are the colors for the four different players. In AnmChr, AnmVis, and AnmTexPat, only the first one is used, __1 though __3 were deleted.

There are a number of blank name images for character slots that aren't used - specifically, MenSelchrChrNm.201, 351, 381, 411, 421, 441, and 471. These textures were all deleted, and the references to them in AnmTexPat > MenSelchrCname4 > Card010 and Card011 > Texture0 were removed.

For the AnmChr of MenSelchrFaceI, I found every bone in the animation that had only one frame, made sure the values in that frame match the values for that bone in the model, and then removed that bone from the animation. This could be done for every animation, I think, but I only did it for this one. It doesn't save much space (around 1,500 bytes for this one, before compression), but it does make it so you can edit the bone on the model and not have it overridden by the animation (at least for the ones where the animation was removed; you still will want to check that first).

In char_bust_tex_lz77, there's a MiscData[41] with only blank images. That was removed.
Changes that simplify editing parts of sc_selcharacter.pac, in addition to making it smaller:
The basic method is taking the models with animations based either on the number of characters in the CSS or the size of the face models, and removing that animation since we now always have 42 characters and are using FaceI.

MenSelchrPos covers the positions of the faces, the main icons for selecting characters, and has a separate animation for every number of characters from 0 to 50. I simplified by copying the translation data from frame 43 of the AnmChr to the bones of the 3DModel, then removing the children of the AnmChr (but not deleting it entirely, because the game looks for it). I did the same child removal to the AnmVis. Also, I reordered the bones of the 3DModel to put them in numerical order (instead of having 2 after 19, for example), and deleted the bones for pos43 through pos50.

IMPORTANT WARNING - editing the MenSelchrPos model, which has bones but no polygons, will not work in BrawlBox 0.71 (and earlier, I think). Use BrawlBox 0.73b, available here.

MenSelchrCoin is the circle object that you drop on a character to mark who you pick - it gets smaller as the faces get smaller. To simplify it, I copied the data from frame 9 of the AnmChr to the bones of the 3DModel, and removed the children of the AnmChr except for scaleN (if scaleN is removed you can't use A to pick up the coin again after placing it on a character - no idea why). For scaleN, I reduced it to just 1 frame with the data from what was frame 9.

MenSelchrCursorB is the flashing box around the face you're coin is on or over. To simplify it, I copied the data from frame 9 of the AnmChr to the bones of the 3DModel, and removed the children of the AnmChr. (If I had not removed the shadow, I would have done the same for MenSelchrShadow, except using frame 10 instead).

Download here. Install by copying the included sc_selcharacter.pac over the Project M one (in projectm\pf\menu2).

Making Efficient CSPs

The Character Selection Portraits in these CSSs are all 128x148, as their bottom 12 rows were not being displayed anyway.

Additionally, to make the CSPs compress better, pixels that are never visible (even when using the C stick) were replaced with transparent pixels. For most characters, I included pixels that are not directly visible, but cast a shadow that is visible. For portraits that fill the bottom left corner where the shadow would be visible, like those of Ganondorf and Ike's default costume, I have another mask that only includes the pixels that are directly visible.

You can grab the masks, and the batch file I use to do the conversion, here. It requires ImageMagick. Running it works like "ReduceCSPs Mask.gif", to convert every PNG file in the directory you're in, and all sub-directories (recursively), to 128x148, with the pixels that are black in Mask.gif converted to transparent.

If you want to do it in a safer way, you can just run "convert INPUTFILE -crop 128x148 Mask.gif -compose DstOut -composite OUTPUTFILE". (Replace INPUTFILE with the file you want to convert, and OUTPUTFILE with whatever you want to name the result. Same as INPUTFILE if you just want to overwrite, which is what the batch file does but probably not what you want to do if you're doing them one at a time.)

If anyone has questions about this, let me know. I may work on a better tool for it at some point - I'd like it to be easy, since it helps significantly with saving space. (And improves the quality of CI8 images, as there are fewer colors to start with.)

Also, note that the results screen portraits are still 128x160, so a full size version should be kept around for them. (I'm not sure they need to be 128x160 - I haven't checked what pixels are visible - but they don't seem to have any file size issues anyway.)

Less Compressed CSPs

This builds on the Compacted CSS, and uses the extra available space to store CSPs as higher-quality CI8 instead of using CMPR. I did so for every portrait for which I had a source - that is, every portrait that was CI8 in either vBrawl, PM3.02, or PM 2.6b. I also made CI8 versions of some of the PM alts using sources from the HD Retexture Project.

It also uses a hack I've been working on to store CI8 textures very efficiently by having the indexes be stored only once for multiple images, with only the palettes differing. This CSS uses that technique for Mr. Game & Watch, and Fox and Falco's Melee alts. As a result, those are currently not well understood by BrawlBox, so I wouldn't recommend editing them.

Download here. Install by copying the included sc_selcharacter.pac over the Project M one (in projectm\pf\menu2).

No Names and Less Compressed CSPs

This builds on Less Compressed CSPs, and removes the names from each character's icon.

This is not just changing the Y translation of nameEA7, but actually removing all the data for the names, reducing the filesize by around 14KB. Here's a list of what I removed, for anyone who wants all the details:
From 3DModels, MenSelchrFaceI, I removed the following:
The nameEA7 bone.
Face06 material.
Shader3 shader.
nameEA7__Face06 vertices.
#2 UVs
polygon3 object
MenSelchrNmS.000 texture.

I also removed Textures > MenSelchrChrNmS.000 and AnmTexPat > MenSelchrFaceI > Face06, and all the MenSelchrChrNmS Textures in MiscData[70].

Download here.

Out-of-the-Box CSS

A new layout for the CSS. Built on top of No Names & Less Compressed CSPs.

Download here. Install by copying the included sc_selcharacter.pac over the Project M one (in projectm\pf\menu2).

Upcoming Projects
Future plans include a Smash 3 CSS I've put significant work into, though it's been a while since I touched it. It still may undergo significant changes, but here's what I have so far:
 
Last edited:

purplebird

Smash Rookie
Joined
Feb 20, 2014
Messages
21
Location
Williamsburg, VA
Hey Ondo, I was wondering how to remove the character names from the CSS icons? I know in other sc_selcharacter files you navigate MiscData[30] --> AnmChr(NW4R) --> MenSelchrFaceI_TopN_0 then change the y-translation to -100 of nameEA7. but in yours there is no nameEA7, just the rotN.
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
Hey Ondo, I was wondering how to remove the character names from the CSS icons? I know in other sc_selcharacter files you navigate MiscData[30] --> AnmChr(NW4R) --> MenSelchrFaceI_TopN_0 then change the y-translation to -100 of nameEA7. but in yours there is no nameEA7, just the rotN.
Look for nameEA7 in the bones section of the 3DModel for MenSelchrFaceI - I'd give more exact details, but I'm not at my computer right now.
 

Goku1233

Smash Cadet
Joined
Apr 1, 2014
Messages
27
NNID
Brolyx1233
Hi I have a question, how do I change the position of the "Ready to fight" at the css? For example, I have some csp that are being blocked by the "Ready to Fight". Is it possible to move it to the top like in the pillar css? or can I just remove it?
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
Is this Wi-Fi Safe? I think Wi-Fi and Full use different common5.pac files.
It is not. Does anyone know what the difference is in the Wi-Fi common5.pac?

Hi I have a question, how do I change the position of the "Ready to fight" at the css? For example, I have some csp that are being blocked by the "Ready to Fight". Is it possible to move it to the top like in the pillar css? or can I just remove it?
That certainly should be possible, but it's not something I've specifically looked at, so I can't give you simple instructions on how to do it. I can let you know roughly how I'd go about investigating it, though.

First off, I'm assuming you have it set up so that you can check edits in Dolphin. (If not, I think I used one of Theytah's tutorials to get that set up.) I recommend muting the sound on Dolphin while testing - I pretty frequently cause crashes when going to the character selection screen that come with an obnoxious noise. Also, Sykval's quick inject tool (at http://forums.kc-mm.com/index.php?topic=69672.0) is a huge time saver.

For the "Ready to Fight" bar, you'll clearly want to be looking at MenSelchrReady - there's a 3DModel, various textures, and four entries in AnmChr and AnmClr (I'm curious what MenSelchrReady_TopN__1 through __3 are used for). AnmChr is for animating movement - it overrides the translation, scale, and rotation transforms on a model's bones. AnmClr is for color animation.

To try removing it, I'd suggest doing the same thing I did to the "New!" model:
It was MenSelchrNew in the different sections of MiscData[30] - for the model (in 3DModels), I removed everything except one bone. The texture was deleted. For the animations (in AnmChr, AnmVis, and AnmClr), all the children of the animation were removed but the animation itself was not deleted.
The easiest way to remove everything but one bone for the model is just to export the MenSelchrNew model and then use that to replace the MenSelchrReady model.

I would not be surprised if removing it crashed, though. In particular, there are ColL and ColR bones, and based on other models I've edited I expect those define the two corners of the box where your cursor counts as being on the ready to fight banner, where you can hit A to start the fight. I would not be surprised if the game crashes if those don't exist.

For moving it up - to start with, I suggest trying to understand the pieces of the model, especially the bones. Those define where things appear, so that's what you'll want to change to move it up. They're in a tree structure, so if you move a parent bone that will automatically move its children. MenSelchrReady has fade, pressN, and readyN at the top level, so it's probably just those three you'll want to concentrate on.

Also, looking at the Objects can help you see what each bone is doing - looking at MenSelchrReady's polygon0, we can see an image of it in BrawlBox, see the VisibilityBone is fade, and see the Material is lambert217 (which we can look at more closely in the Materials section). So I'm pretty sure that's the effect responsible for changing the background color - which is far more obvious in standard Brawl, where the background goes from very light to very dark, than in PM, where it goes from dark to a bit darker.

You can look at more Objects to get a better idea, but I suspect it's pressN and readyN that you want to move. To do that, you can't just change the translation value on the bones, as they are probably overwritten by values in the AnmChr. So I'd look at those bone in the AnmChr, and change the translation values there. It looks like both those bones have two key frames for their animation - my guess is the transition from frame 1 to frame 11 is the animation of it sliding in from the left of the screen. So to move it up I'd try changing the Y value of the translation on frame 1 (and frame 11 should copy that change, since it's not set to override that value).

When changing Y values, note that positive values go towards the top of the screen, and negative to the bottom. 1 unit is about 10 pixels (at least when the Z coordinate is near 0). So if you want to move it up around 100 pixels, add 10 to the value.

I'd work on MenSelchrReady_TopN__0 - I'm not sure what __1 through __3 are for. To find out, a few things I'd check. First, try deleting them entirely and see if the game crashes when you go to the character selection screen! If not, they're not used. :) (For MenSelchrCoin, each type of animation had four entries, but only the AnmClr ones were used; this may be similar.) If they are, try messing with the scale values to make things very large or small, and see if you can see a change. Also checking to see what the differences are, and seeing if you recognize when that change is made, can help.

My guess is __1 might be used for when a cursor is over the ready bar? Something is, anyway. But I'm not sure what __2 and __3 would be for then.

Um, hopefully that's enough info to at least get you started, and hopefully it helps anyone else who is interested as well. Let me know if you have more questions, and any info you find out.
 

ECHOnce

Smash Lord
Joined
Feb 22, 2014
Messages
1,191
Location
Bellevue, WA
Hey, saw your upcoming project preview thingy and got inspired to come up with some other things. I love the lack of the namebar thingies (saw some other posts on how to remove those), but it seemed a bit too...vibrant without any of the nice dark gray from the bars. So I went ahead with coming up with these. I love them, but after a few I realized that these tack on a good 4-6KB extra (relative to the originals), and figured it wouldn't be very feasible to continue if they'd end up taking up too much data and crashing the CSS. Is there any way to calculate whether it would crash CSS without actually having to go through the labor of making them and checking manually?
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
Hey, saw your upcoming project preview thingy and got inspired to come up with some other things. I love the lack of the namebar thingies (saw some other posts on how to remove those), but it seemed a bit too...vibrant without any of the nice dark gray from the bars. So I went ahead with coming up with these. I love them, but after a few I realized that these tack on a good 4-6KB extra (relative to the originals), and figured it wouldn't be very feasible to continue if they'd end up taking up too much data and crashing the CSS. Is there any way to calculate whether it would crash CSS without actually having to go through the labor of making them and checking manually?
The easiest way to check would be to go ahead and replace all the originals with your new version - but go ahead and replace every character's image with a copy of Mario's, if needed.

I'm surprised they're taking up 4-6KB more. What format are you using? If you stick with CMPR, I wouldn't expect it to grow. If you do CI8, they'll be a little higher quality. Getting the CSS icons to work with CI8 took some work - from my notes, here's the changes I made:

In AnmTexPat > MenSelchrFaceI > Face02 > Texture0, set HasPalette to True. Set the palette for each of Texture0's children (MenSelchrChrFace.001, etc.) to match it's texture. (You may have to replace the texture with CI8 first.)

In Textures > MenSelchrChrFace.000, switch it to a format with a palette. I think I used CI4.

In 3DModels > MenSelchrFaceI > Materials > Face02 > MenSelchrFace.000, set the palette to match the texture.

I think that's everything for getting CI8 to work on the CSS icons.

Another thing to note - with the default setup, with 80x56 icons, they're set to work at various different sizes, as more characters are unlocked. At the size PM uses, I think the sides of the icons are cut off, so your icons with the names behind might be missing the start and end of each name. Also, 80x56 is just larger than they really need to be. (The actual size on screen is more like 56x40.) That's part of why I always do an entirely new layout, with different size icons, though that can be quite a bit of work.

Also, if the file size does get to be too big, switching some of the CSPs back to CMPR should fix the issue. Though if the total size of the textures, uncompressed, gets too large that can also cause a crash; I saw that happen when I tried using RGB5A3 for the CSS icons (before I figured out how to do CI8).
 

MFMAXY

Smash Apprentice
Joined
Sep 28, 2013
Messages
95
you should update out of the box w/ SJS CSPs... that would be godly.
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
So, for people who don't want names on the CSS icons (like me), I just finished a version with that in addition to everything in the Less Compressed CSPs package.

This is not just changing the Y translation of nameEA7, but actually removing all the data for the names, reducing the filesize of common5 by around 14KB. Here's a list of what I removed, for anyone who wants all the details:
From 3DModels, MenSelchrFaceI, I removed the following:
The nameEA7 bone.
Face06 material.
Shader3 shader.
nameEA7__Face06 vertices.
#2 UVs
polygon3 object
MenSelchrNmS.000 texture.

I also removed Textures > MenSelchrChrNmS.000 and AnmTexPat > MenSelchrFaceI > Face06, and all the MenSelchrChrNmS Textures in MiscData[70].

Download here. It's another addon, so can be installed the same as the Less Compressed CSPs package. Though the main point of this one is to be used as a base for creating your own CSS, since at least the Random icon should be changed with the names removed.

you should update out of the box w/ SJS CSPs... that would be godly.
Definitely something I'd like to do, but I don't know if I'll find the time.

I figured out a technique for significantly reducing the space CSPs take up, by having CSPs of recolors stored in CI8 share their indexed image data, but each have their own palette. So I'm working on a tool to help create the indexed image data and matching palettes; I'm hoping someone else will update BrawlBox with support.

Once that's done, the next priority will be working on my Smash 3 CSS. I may get my Out-of-the-Box CSS ported to 3.5 as well, since that shouldn't be too hard.

I also hope to create a build of my own, so I'd like to do more work on selecting stages and delving into creating a Stage Selection Screen.

But I am always willing to help out anyone who wants to learn how to do this; if anyone else is interested in creating their own version of the Out-of-the-Box CSS, I'd be happy to help.
 

Amazerommu

Smash Lord
Joined
Jan 4, 2013
Messages
1,147
Location
Kentucky
I figured out a technique for significantly reducing the space CSPs take up, by having CSPs of recolors stored in CI8 share their indexed image data, but each have their own palette. So I'm working on a tool to help create the indexed image data and matching palettes; I'm hoping someone else will update BrawlBox with support.
I so cannot wait for this tool! It's gonna help loads for my massively awesome custom build with all the costumes for all the chars.
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
So I'm still alive.

My tool for creating images with matching indexed image data and separate palettes is coming along somewhat; I've got a Ruby version that converts images, but it takes a while to run - around 2 minutes per image. There are also several other improvements I'd like to make, both to try to increase the quality and make it easier to get them into Brawl.

Here's an example of the output, when working with @Codex9's remastered Pit CSP.

First, the original, with the parts that don't show cropped, plus converted to CI8 by BrawlBox 0.74b and CMPR, then converted by my tool by itself, and then as part of a set with its 5 recolors:



If there are any programmers interested in helping, I'd be happy to go over the algorithm I'm using. I could share the code I have now, but it really should be ported to another language, for efficiency. Though maybe after working on improving the algorithm, since I find that easier to do in Ruby.
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
So I've got my technique working in game!

I have the Remastered Link CSPs, with the five basic recolors sharing the same image data, then Dark Link alone, then the 4 Ocarina of Time recolors sharing the same data. So it ends up being significantly higher quality than CMPR, but with a smaller file size. :)

You can download it here; except for the Link CSPs it's a common5.pac identical to my less compressed CSPs pack.

The current process is to run the original CSPs through a Ruby script I wrote to convert to PNGs that will work with shared image data and different palettes, then run through a second script to convert the PNGs to TEX0 and PLT0 files. Then import those into BrawlBox, and save the BRRES. Then hex-edit that, to fix some values in the TEX0 headers that want to be sharing image data (if the intended final values were in originally it crashes BrawlBox). Then I run that through a third script to do LZ77 compression, because that's needed and if BrawlBox does it, it'll also rebuild the TEX0 files to be sane, instead of sharing the data; right now that LZ77 "compression" is the minimum needed, which means increasing the file size by adding a 00 byte every eight bytes. (Since it's LZ77 compressed again, it's not terrible, but I do want to improve this.) Then I import that into the .pac file again, using a slightly modified version of BrawlBox so it doesn't reject compression that increases the file size.

So, uh, lots of places to improve the process, and I probably won't be running tons of things through it yet. Both because it's not easy and because I'm expecting to make improvements that increase the final quality.
 

Amazerommu

Smash Lord
Joined
Jan 4, 2013
Messages
1,147
Location
Kentucky
So I've got my technique working in game!

I have the Remastered Link CSPs, with the five basic recolors sharing the same image data, then Dark Link alone, then the 4 Ocarina of Time recolors sharing the same data. So it ends up being significantly higher quality than CMPR, but with a smaller file size. :)

You can download it here; except for the Link CSPs it's a common5.pac identical to my less compressed CSPs pack.

The current process is to run the original CSPs through a Ruby script I wrote to convert to PNGs that will work with shared image data and different palettes, then run through a second script to convert the PNGs to TEX0 and PLT0 files. Then import those into BrawlBox, and save the BRRES. Then hex-edit that, to fix some values in the TEX0 headers that want to be sharing image data (if the intended final values were in originally it crashes BrawlBox). Then I run that through a third script to do LZ77 compression, because that's needed and if BrawlBox does it, it'll also rebuild the TEX0 files to be sane, instead of sharing the data; right now that LZ77 "compression" is the minimum needed, which means increasing the file size by adding a 00 byte every eight bytes. (Since it's LZ77 compressed again, it's not terrible, but I do want to improve this.) Then I import that into the .pac file again, using a slightly modified version of BrawlBox so it doesn't reject compression that increases the file size.

So, uh, lots of places to improve the process, and I probably won't be running tons of things through it yet. Both because it's not easy and because I'm expecting to make improvements that increase the final quality.
OOOOOOOOOOOOOOOOOOOOH!Progress is great!
 

Muta

Smash Rookie
Joined
Mar 10, 2015
Messages
2
Location
West Side
Were you planning on releasing that second work in progress or... because that looks pretty sick. I would love to use it.
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
Were you planning on releasing that second work in progress or... because that looks pretty sick. I would love to use it.
Um, hopefully, eventually, but I was wanting to put more work into it; it's been delayed by a lot of other things (working on the CSS compression technique, unexpected move when our lease wasn't renewed, looking for a new job because my current one is not interested in paying me anything close to what I'm worth), and at this point I'm leaning towards waiting until Project M 3.6 and the Smash 3 project are finished.

But I'm super happy to hear you like it, and that definitely increases the chances of it being finished! :)
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
I've updated things to work with 3.6 beta!

First up is the Less Compressed CSPs - available here. In addition to making it work with 3.6, I've converted some of the alternate costumes to CI8, using the HD Retexture Project as a source for higher quality versions.

I've also updated the version without the names on the CSS icons - that's available here.

Finally, I've updated the Out-of-the-Box CSS, and that's available here.

Each of these is just a sc_selcharacter.pac file, to replace the PM one (in projectm\pf\menu2). I would make them addons, but my initial attempt caused a crash for me on my Wii, so I'm holding off on that for now.
 
Last edited:
Joined
Aug 12, 2005
Messages
620
Location
Miami, Florida
In AnmTexPat > MenSelchrFaceI > Face02 > Texture0, set HasPalette to True. Set the palette for each of Texture0's children (MenSelchrChrFace.001, etc.) to match it's texture. (You may have to replace the texture with CI8 first.)

In Textures > MenSelchrChrFace.000, switch it to a format with a palette. I think I used CI4.

In 3DModels > MenSelchrFaceI > Materials > Face02 > MenSelchrFace.000, set the palette to match the texture.

I think that's everything for getting CI8 to work on the CSS icons..
So does this mean that you've done this with the selchar.pac you provided, and that I can change any portrait to C18 if I wish, and it will work? (up until I reach the file limit)

And on that note, what would your suggestions be for a CSS where every character has at least 10 costumes. In the past, Ive resorted to making everything but Olimar CMPR and zeroing out all wifi-related textures just to avoid going over file size, but the aesthetic quality is....lacking. What would you suggest?
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
So does this mean that you've done this with the selchar.pac you provided, and that I can change any portrait to C18 if I wish, and it will work? (up until I reach the file limit)
I only did it to the Out-of-the-Box CSS one, where I used it. I considered it for the others, and decided not to - in retrospect, that was probably the wrong decision.
And on that note, what would your suggestions be for a CSS where every character has at least 10 costumes. In the past, Ive resorted to making everything but Olimar CMPR and zeroing out all wifi-related textures just to avoid going over file size, but the aesthetic quality is....lacking. What would you suggest?
Well, I'd suggest starting from my Less Compressed CSPs, and making sure every CSP is reduced to 128x148, and has the parts of the texture that don't show masked out. That won't be enough to make it so that every CSP can be CI8, but I think it'll be enough that some can be.

I have a batch file I use to do that - here is the latest version. It requires ImageMagick. Running it works like "ReduceCSPs Mask.gif", to convert every PNG file in the directory you're in, and all sub-directories (recursively), to 128x148, with the pixels that are black in Mask.gif converted to transparent.

If you want to do it in a safer way, you can just run "convert INPUTFILE -crop 128x148 Mask.gif -compose DstOut -composite OUTPUTFILE". (Replace INPUTFILE with the file you want to convert, and OUTPUTFILE with whatever you want to name the result. Same as INPUTFILE if you just want to overwrite, which is what the batch file does but probably not what you want to do if you're doing them one at a time.)

Let me know if you have questions about that - I may work on a better tool for it or some such. I'd definitely like it to be easy, since it's important.

Also, if you have CSPs where you have a full quality source (not converted to CMPR or CI8 yet), and that are just recolors of each other, I do have a technique to store a separate palette for each but share the indexed data. (I use it for Mr. Game & Watch, and the Melee Fox and Falco CSPs.) I'm still working on improving the tools, and right now the process involves running Ruby scripts from the command line and some manual hex-editing, but if you want it done let me know and I can maybe share those with you. Note that the need to make it work across multiple images does mean it's a bit lower quality than just doing it for one image. Still generally better than CMPR though.
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
Was this intentional?
Yes. It's a result of my method to have the Melee Fox costumes share the same texture, but with different palettes. BrawlBox doesn't understand it, but it works in-game.

You'll see the same thing on the Melee Falco costumes, and on Mr. Game & Watch.
 
Joined
Aug 12, 2005
Messages
620
Location
Miami, Florida
Yes. It's a result of my method to have the Melee Fox costumes share the same texture, but with different palettes. BrawlBox doesn't understand it, but it works in-game.

You'll see the same thing on the Melee Falco costumes, and on Mr. Game & Watch.
What will happen if I replace those textures with those of my own? I can imagine I'll break something but I'm honestly not sure...
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
What will happen if I replace those textures with those of my own? I can imagine I'll break something but I'm honestly not sure...
Honestly? I'm not sure either...

I'd expect it to be fine if you replace all of them (or even all of them except the last one, which doesn't really have anything special going on). Also, if you use BrawlBox 0.73b I'd expect replacing them to be fine - that one properly noticed the larger headers and displayed the images fine, so I think any changes would just undo the special magic but leave everything else okay.
 

PsychoGhost

Smash Apprentice
Joined
Aug 4, 2014
Messages
111
Location
Southern California

So I've been working to re-do your out-of-the-box CSS for some SoCal stuff, and here's what I've got so far. :)

Also, would you be able to upload a version with the default Project M CSS layout of the characters too please? :)
 

tasteless gentleman

Smash Journeyman
Joined
Mar 23, 2015
Messages
492
If i made a request, as long as it was not too time consuming, would you be into the idea of making the vision a reality?
 

PsychoGhost

Smash Apprentice
Joined
Aug 4, 2014
Messages
111
Location
Southern California
That Hexagon layout is sick Ondo! Could you make a default Project M layout for the out-of-the-box version? If you could do this, I'd be eternally grateful! :)
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
Also, would you be able to upload a version with the default Project M CSS layout of the characters too please? :)
I'm not going to do that myself, but it's a fairly easy change to make. I covered how to do it in my prior Out-of-the-Box thread (which I don't think I linked to from here before...) at http://smashboards.com/threads/out-of-the-box-css-v1-5.365948/#post-17490757.

This is neat! One possible change I think might work - instead of having each rows have 10 or 11 characters, alternating (10-11-10-11), what about making it be 12-11-10-9? (I think 12 will fit on a single row.)
 

PsychoGhost

Smash Apprentice
Joined
Aug 4, 2014
Messages
111
Location
Southern California
Ondo, I renamed the "pos##" files to be in chronological order, but now this is what the CSS looks like:

How would I get it back to the right number of rows and such?
 
Last edited:

Amazerommu

Smash Lord
Joined
Jan 4, 2013
Messages
1,147
Location
Kentucky
Ondo, I renamed the "pos##" files to be in chronological order, but now this is what the CSS looks like:

How would I get it back to the right number of rows and such?
That menu... Give it to meh. Also I know how to chang the rows per and such... Or at least can figure it out again with time.
 

DualX

Smash Apprentice
Joined
Jul 27, 2014
Messages
121
Which file has that background? I would love to have it with the standard css.
Ondo, I renamed the "pos##" files to be in chronological order, but now this is what the CSS looks like:

How would I get it back to the right number of rows and such?
Because I would love to replace the standard icons with these! These look different from Ondo's pictures. Do you have a file with these icons included so I can add them to my build?

EDIT: Did some digging last night and made the modifications I wanted to the light blue variant. You guys do amazing work!
 
Last edited:

devnew

Smash Apprentice
Joined
Dec 2, 2014
Messages
161
Location
The Corner
NNID
DevNew
What program do you use to make custom css? or is it just brawl box. (I mean like rearranging the character order and stuff). please reply... im a huge noob at this stuff.
 

Ondo

Smash Apprentice
Joined
Jun 20, 2007
Messages
160
So I'm still alive! I've updated my CSS stuff with the one fix I know was made in Project M 3.6, compared to the beta - the new orange Diddy Kong CSP.

Here's the links for Less Compressed CSPs, No Names & Less Compressed CSPs, and the Out-of-the-Box CSS.

Ondo, I renamed the "pos##" files to be in chronological order, but now this is what the CSS looks like:
How would I get it back to the right number of rows and such?
Oh, sorry, I misunderstood earlier. To get it to the standard layout, you'd need to shrink each box to 4/5ths the current size. Between doing that and having fewer in each row there would be a lot of empty space to either side. Since you're making your own icons, would you rather make them not be square so they can fit the full space better?

What program do you use to make custom css? or is it just brawl box. (I mean like rearranging the character order and stuff). please reply... im a huge noob at this stuff.
I just used BrawlBox.
 
Last edited:
Top Bottom