Users browsing this thread: 1 Guest(s)
Xenogears Battle Sprites
I meant ripping the sprites themselves.
Doofenshmirtz: This is a little bit awkward but have you seen my escape jet keys? (Perry nods) What, you have? Well that's great! So where are they? (Perry looks away) You won't tell me? Is this because you don't speak or are you just being a jerk?
~Phineas and Ferb, "One Good Scare Ought to Do It!" (2008)
Thanked by:
Unbelieveable work. I remember looking into this game with VRAM and noticing how everything was just pieces, I lost hope. And now here it is again, in the flesh with fresh sunlight bestowed. Excellent work man  Smile
Current ripping projects: 
Bahamut Lagoon FX  - In Progress

[Image: 8XRDwnT.png]
Thanked by: rufaswan
Hey, how are you guys doing?

Making some progress on CV NDS games, I begin to understand how a NDS game work.

Ever since I made no progress on sprite's palette, I think maybe the palettes are shared by both map tiles and sprites. So I switched my direction from hacking sprites data to hacking map data.

Also, inspired by SNEER (Symphony of the Night Editor and Entity Recompiler) by Nyxojaele, I'm extracting the layout info to put all map*.png on the right position. It starts to look like a level editor now.

[Image: RyLyMRV.png]

It is like a interactive VG Map, I like this!  Heart

Now I'll need to hack sprites + object + item data to replace all the X's. And then finish up with UI elements, special effect, and other minor stuff.

- Rufas

EDIT: Attached 2 sample maps for you guys to play with.

Attached Files
.zip (Size: 391.72 KB / Downloads: 13)
.zip (Size: 308.1 KB / Downloads: 4)
Thanked by: Barack Obama, SmithyGCN, Ton, Pik
Found the palettes! Just like SOTN, they hardcoded it into assembly, hence it is pretty hard to find if you don't know what you are looking for.

The whole process is like
1) Look for a monster data, like HP, EXP. From there you'll find the complete set of data including drop item, drop rate, weakness, resist for every monster/boss in the game.
2) One of the data is a function pointer, follow it.
3) You'll see some assembly instruction like this:
  loc_2271b4  r1 , Lxx_2132a30
  loc_2271b8  r2 , Lxx_22ba95c
  loc_2271c0  r3 , Lxx_22aad4c
and r3 is the pointer to the monster palette.

Since this is how it hide its palette, I'm forced to write a ARM assembly parser to locate the data:

But the problem doesn't stop there. All boss has its own overlay file, so the function and palette is located over there instead. So now you'll need monster + overlay pair data.

OOE Dracula completely breaks the rule. Unlike the rest of the boss, only its function is on its own overlay file, its palette is actually on the map overlay file. The king of the night just do whatever it wants!

In short, the palettes are all over the place, across multiple overlay files, and buried in assembly code. The whole thing is one big wild goose chase!

Since it is hardcoded, I end up patching every monster:

(NOTE: POR Loretta palette is only a set of 9 x 16 color palette, not two different .cvpal)

As for the maps, all POR and OOE maps are ripped. DOS maps have something weird going on, and wasn't able to rip correctly.

I combined the maps from multiple overlay files and made a simple grid lines for background:
1) Green line is a tile. It is 16 x 16 pixels.
2) Yellow line is a room. it is 16 x 12 tiles.
3) Cross is added to the center of a room for room symmetry guide.

The full map of Dracula Castle:

I wonder if SOTN maps can be combined?

- Rufas
Thanked by: SmithyGCN, Pik, Ton
Wow! You're doing an amazing job.
[Image: b1.php?u=39480955]
Ton's most wanted rips: Time Splitters 2 Models (Gamecube/PS2), Radiant Historia Characters (DS), Final Fantasy 4 Models (DS),  Final Fantasy 7 models (Playstation/PC), Bravely Default/Second Models (3DS), Clay Fighter 2 fighters (SNES)
Quote:You had wasted MY LIFE... waiting for just a goddamn bunnelby model.
-The prestigious Farlavor
Thanked by:

Forum Jump: