ROM Hack Kirby Super Star Ultra asset ripping

Robininyohood

New Member
OP
Newbie
Joined
Apr 21, 2021
Messages
2
Trophies
0
Age
24
XP
44
Country
Canada
To preface, I obviously have extremely limited knowledge of DS ROM editing in general. I'm trying to rip some assets from the game to repurpose them. Specifically, I want the sprites and animations of the enemies of the game (eg. Bio Spark, Chilly, etc.). Additionally I want the hitboxes associated with their attacks (Referring to their full movesets in helper to hero). As I understand it the sprites and animations should at least be reasonable, but my second request wouldn't be nearly as simple, probably because it's simply not the way the game works. My knowledge of hitboxes is primarily smash, so I assume they are just a list of positions, active frames and parameters such as size, dmg.

So far, I've skimmed through the game in tinke, but nothing from the game is instantly unpackable. I'm not really sure about the certain way I need to extract the files from the "compress" parts that tinke does read. I ask here because in all the tutorials (on the pokemon games) the sprites are all packed in a .narc, which you simply unpack. From reading around I gathered that every game is unique when it comes to viewing the assets in a practical sense.

Point and simple, for anyone with experience rom hacking KSSU, or DS rom hacking in general

1. How would I go about finding the sprites/models used in the game, and extracting them to be viewed and edited

2. Is it feasable to view/gather hitbox data attached to those animations
,if so how?
Thanks
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Sprites are usually just that. You might have some compression and might have an archive format but can usually get it to the point where a tile viewer like crystaltile2, maybe tinke, tiledggd or something will view it.
http://www.romhacking.net/documents/469/ is older but details a few of them, https://wiki.vg-resource.com/Nintendo_DS has some more. Most archives are variations on a general theme -- some might have file lengths rather than pointers, some might have file names, some might have other info like compressed or not but ultimately you need a way to have files and way to find the files within them fairly quickly.
This is assuming you don't just grab them from VRAM using the nice sprite/bg/map/... viewers that various emulators provide. Naturally you would also be using cheats and savestates to make this quicker/easier and maybe even delving into the files themselves (if you can overwrite the "200 hours sidequest for hidden boss" file with basic enemy to have it appear right in the first level then makes sense, some might blur the lines and do a bit of level editing to add in enemies from different locations if the game will accept it).
On the DS not all things are 2d sprites -- new super mario brothers for instance is a 3d game. In that case 3d models and textures is the order of the day. Watching a video of some gameplay it looks 2d here though some of the bosses might not be.

Animations... there are formats Nintendo provided but not all devs will use them. If it is for repurposing in a fan game or something then I would sooner almost recreate them myself from video footage -- can happily count frames and display this sprite, frames and display this sprite in this position.


Hitboxes... I can't rule out it being a nice file with numbers somewhere but it is usually buried in the code.
Again I would probably try to figure it out from footage for some kind of wide approach -- if it was for a single character that did not have... the general gameplay tropes of kirby then going for the code might be more feasible. Doing it for everything for what is potentially 10 or so lead characters and just as many enemies... quite tedious. Naturally you can use cheats, disable backgrounds, use savestates, edit levels... to figure out what it might be for given points of animations

If you or the forum searcher landing on this did want a nice enough overview of hitboxes in general
https://www.pcgamer.com/how-hitboxes-work/ is what I usually link.
 

Robininyohood

New Member
OP
Newbie
Joined
Apr 21, 2021
Messages
2
Trophies
0
Age
24
XP
44
Country
Canada
I really thought all games were literally like a nice clean list of assets lol. Either way on the sprites front I did manage to get them correctly displayed in tile molester. Turns out there's a folder ("pd") which does conveniently store all the characters, just in a jumbled mess that isint actually a regular tile. I found a really useful thread that i cant link cause GBATemp wont let me. Point being that side of things is covered. Import any of the .b files in said folder into TM set the codec to 4bpp, linear, reverse-order, set canvas size to 4 columns and however many rows and boom. Money.

I haven't figured out palettes, those are a bit more complex. It probably wouldn't be too hard to just rip each frame and compile it in gimp or something, if I wanted to use the animation in another game. For those wanting to do actual sprite editing for KSSU there's actually not much work left to be done I believe. Imaginations the limit now. Of course I wouldn't know since I haven't actually tested it... but anyways.

Otherwise about the hitboxes, yeah I don't know, I'm in for a ride i guess lol. I'll do a little bit more looking to see if there's something really clear, but considering I'm not that familiar with hex and how the ds translates data in the first place... yea I'm likely gonna need to remake them. I mean, that's how you learn I guess? I've never worked with hitboxes before so that might be really fun or really grueling. Anyways I'll update if I find anything though through process of elimination maybe.

Appreciate the help.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
For hitboxes then I would probably start with the obvious square around it and trim down from there. Some games like bullet hell shumps are notably smaller than the ships/player characters but most platformer type deals are fairly as you would expect.
Remaking from video won't teach much about the way the game's code handles them but collisions is not that hard -- it will either use the OAM or virtual world the game maintains, or layer on top of the virtual world (see KCL files in mario kart for an idea there, also how they determine where the track goes).


Palettes. They tend to be in the same directories, and sometimes even the same files. Indeed if in said tile editor and using one of the more normal coloured base palettes the tile editor tends to provide as opposed to black and white I tend to look very carefully at anything with a lot of random coloured pixels immediately before or after.
Anyway two tricks
1) The tile/bg/... viewers will also have a palette. These also can show you where any dynamic colours are (mostly brightness enhancement, though less common on the DS than the GBA where devs eventually had to make things work on originals, sp, 101, micro and GB player) or palette based animations (I usually suggest the rainbow blocks in mr driller 2 on the GBA -- open up an emulator, open palette viewer, check update in real time and find a rainbow block).
You can rip this in various emulators and feed it to tile editors, some tile editors (I tend not to use tile molester so don't know the ins and outs -- for GBA and DS stuff I tend to have crystaltile2, tiled2002 and tiledggd, with tinke for the odd texture formats that more traditional editors sometimes stumble with) even support grabbing it directly from a savestate.
2) Said palette as covered in 1) is actually just memory data and as they are small ( http://problemkaputt.de/gbatek.htm#dsvideoextendedpalettes being as big as things get, http://www.coranac.com/tonc/text/video.htm being a nice overview of GBA graphics which is 90% of DS 2d graphics) as these things go then they tend not to be compressed unless by coincidence with the tile data itself being compressed. That means you can usually then grab the palette from the emulator as it is running and search the ROM for it, if it is one of the animation things then grab the parts around the animated bit and use those instead, if it is dynamic then have fun with that one, maybe try a more binary form of relative search).

Beyond that then yeah probably going to have to delve into tracing
https://www.romhacking.net/documents/361/
Though use no$gba debug version or a similarly potent emulator.

On files in general. Plaintext is nice, however if you just pack them into an archive it makes grabbing files simpler for this routine, and compression saves space which the boss is onto us to save as 10000 lots of the 512Mbit chip is more than the same of the 256, and I can't actually be bothered to understand this format Nintendo gives me so I will make my own which might do all that it does and more still, screw it actually it is beer o clock and it compiles and runs so meh, not to mention I made this format before and wait this is similar to the main PC port of this game...

Also on links then yeah spammers and various banned members do ruin the fun... you can usually break up urls a la www . somesite .tld /extrabits or if it is a common host (say youtube or imgur or whatever) then that host and whatever its unique identifier might be.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://www.youtube.com/watch?v=pkYA4rALqEE