[SOLVED] Really troubled about pallete issues...

Salutations, developers!

I've got interest in this wonderful engine, but i'm struggling about finding proper documentation about the .txt files, since the only information source i've found is the DC Emulation's OpenBOR Manual.

I'm also trying to figure out how to deal with palletes, as you may see in the attached image. If possible, i would like to ask guidance from someone...



[attachment deleted by admin]
 
Hi Paulo!  ;D

Too bad you didn't attach your sprites for Iori
My best guess is that Iori's palette isn't consistent. Yes, in order for palette to work, all sprites used by Iori must use same palette
Try applying same palette for Iori and see if that solves the problem :)
 
Paulo, that DC Emulation manual is the best and most updated version - I update it myself. The manual is pretty clear about palettes.

You need to apply the same palette in every sprite, or it won't work. And remember that gif and png uses a different color order than pcx. In pcx, its reversed.
 
Hello there, gentlemen. I do believe that the sprites are all using the same pallete. This is what i did, step by step:

1 - Downloaded Iori's sprites from this link: http://spritedatabase.net/file/5198
2 - Opened it using Corel Draw Photopaint X6.
3 - Cleaned the image, removing the purple flame effects and other unecessary informations.
4 - Changed the color depth to 8 bits (256 colors)
5 - Reindexed the background colour to index 0 (the first one)
6 - Saved the sprite sheet as a .gif file
7 - Copy/Pasted the individual sprites into another files (without affecting the pallete)
8 - Saved these individual sprites as .gif

What am i doing wrong?

For clarity purposes, the edited spritesheet and a few individual sprites are attached.


[attachment deleted by admin]
 
Well here it is. As you guys may see, there's a lot of Kula's stuff, just 'cause i'm working on replacing it step by step.

Code:
# Do not forget to name your character.
# Health is optional.

name	Iori_Yagami
health	100
speed	9
running 18 4 2 0 0
type	player
shadow	3
diesound data/sounds/eek.wav

icon	data/chars/iori/icon.gif


#---------- SPECIAL COMMANDS
com	D F A freespecial	#Hadouken
com	D U A freespecial2	#Shoryuken


# To create an alternate colour version, enter the path to
# an image in the original, and one in the alternative colourset.
remap	data/chars/iori/Stand_00.gif data/chars/iori/Remap_00.gif


# Animation syntax:
# First enter the name of the animation:
#	anim	[name]				idle, walk, jump, etc
#
# Then add some other values, like so:
# 	loop	[0/1]
#	offset	x y					location of center,bottom
#	delay	num					in 100th seconds
#	bbox	x y width height			weak point
#	attack	x y width height force drop long	attack rect, force, drop opponent, hurt longer
#
# Every time you specify "frame", a frame is appended to the animation,
# using the settings you just specified. You can change all the values
# at any time between adding frames, though changing "loop" again is
# ofcourse essentially pointless.
# All numeric values default to 0 if not specified.
# 
#	frame	[path]
#
# The maximum number of frames per animation is 32.
# You may use GIF, PCX or BMP files.


anim waiting
	loop    0
        delay   10
        offset  48 96
        frame   data/chars/iori/portrait.gif


anim idle
	loop	1
	delay	10
	offset	32 64
	bbox	14 6 22 97
	frame	data/chars/iori/stand_00.gif
	frame	data/chars/iori/stand_01.gif
	frame	data/chars/iori/stand_02.gif
	frame	data/chars/iori/stand_03.gif
	frame	data/chars/iori/stand_04.gif

anim walk
	loop	1
	delay	10
	offset	32 64
	bbox	19 3 15 101
	frame	data/chars/iori/walk_00.gif
	frame	data/chars/iori/walk_01.gif
	frame	data/chars/iori/walk_02.gif
	frame	data/chars/iori/walk_03.gif

anim run
	loop	1
	delay	10
	offset	32 64
	bbox	19 3 15 101
	frame	data/chars/iori/run_00.gif
	frame	data/chars/iori/run_01.gif
	frame	data/chars/iori/run_02.gif
	frame	data/chars/iori/run_03.gif

anim runjump
	loop	1
	delay	7
	offset	32 64
	bbox	19 3 15 101
	frame	data/chars/iori/run_00.gif
	frame	data/chars/iori/run_01.gif
	frame	data/chars/iori/run_02.gif
	frame	data/chars/iori/run_03.gif

anim runattack
	loop	0
	delay	7
	offset	48 64
	bbox	19 3 15 101
	frame	data/chars/iori/runatk_00.gif
	frame	data/chars/iori/runatk_01.gif
	frame	data/chars/iori/runatk_02.gif
	frame	data/chars/iori/runatk_03.gif
	frame	data/chars/iori/runatk_04.gif
	frame	data/chars/iori/runatk_04.gif
	frame	data/chars/iori/runatk_04.gif
	frame	data/chars/iori/runatk_04.gif
	frame	data/chars/iori/runatk_04.gif


anim get
	loop	0
	delay	5
	offset	41 95
	frame	data/chars/kula/get000.gif
	frame	data/chars/kula/get001.gif
	delay	30
	frame	data/chars/kula/get002.gif
	delay	5
	frame	data/chars/kula/get001.gif
	frame	data/chars/kula/get000.gif


anim attack1
	loop	0
	delay	4
	bbox	15 0 19 99
	offset	23 101
	frame	data/chars/kula/a1-000.gif
	bbox	24 5 19 94
	move	10
	offset	33 101
	frame	data/chars/kula/a1-001.gif
	attack	59 19 39 16 5
	bbox	41 7 16 92
	move	10
	offset	43 101
	frame	data/chars/kula/a1-002.gif
	move	0
	frame	data/chars/kula/a1-003.gif
	attack	0 0 0 0 0
	bbox	35 5 19 94
	offset	33 101
	move	-10
	delay	2
	frame	data/chars/kula/a1-004.gif
	offset	23 101
	move	-10
	frame	data/chars/kula/a1-005.gif


anim attack2
	loop	0
	delay	4
	offset	32 104
	bbox	19 7 30 97
	frame	data/chars/kula/a2-000.gif
	bbox	25 19 24 86
	move	5
	offset	37 104
	frame	data/chars/kula/a2-001.gif
	bbox	37 28 29 77
	attack	64 39 59 30 10
	move	5
	offset	42 104
	frame	data/chars/kula/a2-002.gif
	move	0
	frame	data/chars/kula/a2-003.gif
	frame	data/chars/kula/a2-002.gif
	attack	0 0 0 0 0
	bbox	19 7 30 97
	frame	data/chars/kula/a2-000.gif
	move	-10
	offset	32 104
	frame	data/chars/kula/a2-006.gif


anim attack3
	loop	0
	delay	6
	offset	15 123
	bbox	13 24 21 100
	frame	data/chars/kula/a3-000.gif
	move	10
	offset	25 123
	bbox	24 28 16 97
	frame	data/chars/kula/a3-001.gif
	move	10
	offset	35 123
	frame	data/chars/kula/a3-002.gif
	move	0
	attack	47 1 48 99 15 1
	bbox	35 28 10 96
	frame	data/chars/kula/a3-003.gif
	attack	32 0 21 15 15 1
	frame	data/chars/kula/a3-004.gif
	attack	0 0 0 0 0
	frame	data/chars/kula/a3-005.gif
	bbox	24 28 16 97
	frame	data/chars/kula/a3-002.gif
	move	-10
	offset	25 123
	frame	data/chars/kula/a3-001.gif
	move	-10
	offset	15 123
	bbox	13 24 21 100
	frame	data/chars/kula/a3-000.gif


anim special
	loop	0
	delay	3
	offset	76 133
	frame	data/chars/kula/super000.gif
	frame	data/chars/kula/super001.gif
	frame	data/chars/kula/super002.gif
	frame	data/chars/kula/super003.gif
	frame	data/chars/kula/super004.gif
	frame	data/chars/kula/super005.gif
	blast	5 50 64 85 20 1
	frame	data/chars/kula/super006.gif
	blast	5 50 64 137 20 1
	frame	data/chars/kula/super007.gif
	blast	69 50 64 72 20 1
	frame	data/chars/kula/super008.gif
	blast	0 0 0 0 0

# second spin
	frame	data/chars/kula/super015.gif
	blast	0 67 116 68 20 1
	frame	data/chars/kula/super014.gif
	blast	3 57 72 76 20 1
	frame	data/chars/kula/super013.gif
	blast	66 52 52 83 20 1
	frame	data/chars/kula/super012.gif
	blast	0 0 0 0 0
	frame	data/chars/kula/super011.gif
	frame	data/chars/kula/super010.gif
	frame	data/chars/kula/super009.gif
# end second spin

	frame	data/chars/kula/super016.gif
	frame	data/chars/kula/super017.gif
	frame	data/chars/kula/super018.gif
#	blast	47 1 48 99 15



anim freespecial
	loop	0
	delay	5
	offset	41 115
	bbox	38 15 19 102
	sound	data/sounds/kulablow.wav
	frame	data/chars/kula/kiss000.gif
	frame	data/chars/kula/kiss001.gif
	frame	data/chars/kula/kiss002.gif
	frame	data/chars/kula/kiss003.gif
	frame	data/chars/kula/kiss004.gif
	frame	data/chars/kula/kiss005.gif
	attack	56 28 36 15 20 1
	frame	data/chars/kula/kiss006.gif
	attack	56 29 44 23 20 1
	frame	data/chars/kula/kiss007.gif
	attack	67 34 75 36 20 1
	frame	data/chars/kula/kiss008.gif
	attack	68 33 104 53 20 1
	frame	data/chars/kula/kiss009.gif
	attack	67 35 112 58 20 1
	frame	data/chars/kula/kiss010.gif
	attack	67 35 117 58 20 1
	frame	data/chars/kula/kiss011.gif
	attack	67 35 122 58 20 1
	frame	data/chars/kula/kiss012.gif
	frame	data/chars/kula/kiss013.gif
	frame	data/chars/kula/kiss014.gif
	attack	0 0 0 0
	frame	data/chars/kula/kiss015.gif
	frame	data/chars/kula/kiss016.gif
	frame	data/chars/kula/kiss017.gif
	frame	data/chars/kula/kiss018.gif
	frame	data/chars/kula/kiss019.gif
	frame	data/chars/kula/kiss020.gif
	frame	data/chars/kula/kiss021.gif
	frame	data/chars/kula/kiss022.gif

anim freespecial2 # Special + Up + Attack
	loop	0
	delay	7
	offset	32 64
	bbox	38 15 19 102
	frame	data/chars/iori/SUA_00.gif
	move	5
	sound	data/chars/iori/SUA_00.wav
	frame	data/chars/iori/SUA_00.gif
	move	5
	movea	15
	frame	data/chars/iori/SUA_01.gif
	frame	data/chars/iori/SUA_02.gif
	movea	0
	frame	data/chars/iori/SUA_03.gif
	frame	data/chars/iori/SUA_04.gif

anim jump
	loop	0
	offset	32 64
	delay	15
	bbox	40 42 17 73
	frame	data/chars/iori/jump_00.gif
	frame	data/chars/iori/jump_01.gif

anim jumpattack
	loop	0
	offset	31 90
	delay	7
	bbox	23 0 18 65
	frame	data/chars/kula/jk000.gif
	delay	1000
	attack	68 51 32 27 6 1
	frame	data/chars/kula/jk001.gif


anim jumpattack2
	loop	0
	delay	7
	offset	43 90
	bbox	26 24 33 53
	frame	data/chars/kula/airp00.gif
	bbox	26 30 33 44
	frame	data/chars/kula/airp01.gif
	bbox	23 20 34 35
	attack	44 49 28 32 6 0
	frame	data/chars/kula/airp02.gif
	delay	1000
	attack	44 50 28 33 6 0
	frame	data/chars/kula/airp03.gif


anim grab
	loop	0
	offset	33 74
	bbox	27 5 33 73
	delay	1000
	frame	data/chars/kula/grab.gif


anim grabattack
	loop	0
	offset	36 100
	bbox	34 9 19 93
	delay	4
	frame	data/chars/kula/knee01.gif
	frame	data/chars/kula/knee02.gif
	delay	20
	attack	48 35 34 26 6
	frame	data/chars/kula/knee03.gif
	attack	0
	delay	4
	frame	data/chars/kula/knee02.gif
	frame	data/chars/kula/knee01.gif


anim grabattack2
	loop	0
	offset	40 121
	bbox	34 25 25 100
	delay	5
	frame	data/chars/kula/elbow01.gif
	attack	51 4 27 51 8
	frame	data/chars/kula/elbow02.gif
	bbox	37 25 25 100
	frame	data/chars/kula/elbow03.gif
	attack	0
	frame	data/chars/kula/elbow04.gif
	bbox	40 25 25 100
	frame	data/chars/kula/elbow05.gif
	bbox	41 31 26 93
	attack	57 37 27 35 10 1
	frame	data/chars/kula/elbow06.gif
	frame	data/chars/kula/elbow07.gif
	attack	0
	frame	data/chars/kula/elbow08.gif
	frame	data/chars/kula/elbow09.gif
	bbox	26 22 24 102
	frame	data/chars/kula/elbow10.gif


anim throw
	loop	0
	offset	40 60
	delay	10
	sound	data/sounds/kulahey.wav
	frame	data/chars/kula/throw1.gif
	delay	30
	frame	data/chars/kula/throw2.gif
	delay	10
	frame	data/chars/kula/throw1.gif


anim pain
	loop	0
	offset	31 89
	bbox	12 0 36 90
	delay	8
	frame	data/chars/kula/pain01.gif
	delay	50
	frame	data/chars/kula/pain02.gif
	delay	8
	frame	data/chars/kula/pain01.gif


anim fall
	loop	0
	offset	51 95
#	attack	
	delay	8
	frame	data/chars/kula/fall00.gif
	frame	data/chars/kula/fall01.gif
	frame	data/chars/kula/fall02.gif
	frame	data/chars/kula/fall03.gif
	frame	data/chars/kula/fall04.gif


anim rise
	loop	0
	offset	32 94
	delay	10
	frame	data/chars/kula/rise1.gif
	frame	data/chars/kula/rise2.gif
	frame	data/chars/kula/rise3.gif
	frame	data/chars/kula/rise4.gif


anim land
	loop	0
	offset	50 113
	delay	25
	bbox	40 42 17 73
	frame	data/chars/kula/jump000.gif
 
Thanks :)
My thought was correct, there's a problem in palette definition. FYI if you don't define palette for your character, OpenBoR will acquire palette from THE FIRST DEFINED FRAME. For Iori, his palette will be taken from portrait.gif because WAITING animation is the first animation declared for him

You have to apply same palette to portrait.gif to solve this problem
 
It is I who thank you, Bloodbane! But the issue stands the same, portrait.gif actually uses the same pallete as the other sprites; every sprite was made from the Iori_Sheet.gif, which means they inherit it's pallete... I guess.

EDIT: I just attached a few screenshots from the sprites pallete, for your verification.
PS.: Sorry for the portuguese in the images  :-\

[attachment deleted by admin]
 
[SOLVED]

I just discovered the problem, which lies HERE:
Code:
remap	data/chars/iori/Stand_00.gif data/chars/iori/Remap_00.gif

The Remap_00.gif was actually using ANOTHER pallete, 'cause i thought that was how the remapping works... As soon as I removed the code above, the sprites worked properly.

But now i do have another question... How to remap? Should i store every alternative colour in the same pallete and... i don't know, recolour the remap sprite manually?
 
Paulo HP Bender said:
...But now i do have another question... How to remap? Should i store every alternative colour in the same pallete and... i don't know, recolour the remap sprite manually?


That's the easy part, but it depends on what your editor is. What are you using?

DC
 
Paulo, to create new palettes, I suggest you to use Fighter Factory. Its a Mugen tool but it has an amazing palette editor (way better than many commercial tools, including Photoshop itself).

It can generate the palette from different images at once, you can change the color order, sort by tones, ask it to compare two different palettes and add just the different colors, apply a specific palette to many images at once...its just amazing

Take a look at this topic http://www.chronocrash.com/forum/index.php?topic=60.0

And for palettes, I never use REMAP. I do prefer to use ALTERNATEPAL.
 
Back
Top Bottom