We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Fruit Ninja: Puss In Boots

From The Cutting Room Floor
Revision as of 22:35, 20 May 2021 by Connor64 (talk | contribs)
Jump to navigation Jump to search

Click to upload a new image...Dummy link

Fruit Ninja: Puss In Boots

Developer: Halfbrick Studios
Publisher: Halfbrick Studios
Platforms: iOS, Android


SourceIcon.png This game has uncompiled source code.
DevMessageIcon.png This game has a hidden developer message.
DevTextIcon.png This game has hidden development-related text.


Fruit Ninja: Puss In Boots is a spinoff of Fruit Ninja starring Puss in Boots from the Shrek animated movie franchise, made to promote his 2011 spin-off film.

Compiled Windows executables

Hmmm...
To do:
All of them appear to crash, most likely due to the assets aren't built for Windows, fix if possible.

The assets.zip archive containing the data in the iOS version has four compiled Windows executables of the game, being for the iPhone Lite/iPhone Free, iPad/HD Lite/HD Free and full versions of the two for both devices, all debug enabled.

Download.png Download Fruit Ninja: Puss In Boots (iPhone) Windows executables
File: FNPIB_iPhoneBuild_WindowsEXEs.zip (6727 KB) (info)
Download.png Download Fruit Ninja: Puss In Boots (iPad) Windows executables
File: FNPIB_iPadBuild_WindowsEXEs.zip (5693 KB) (info)

Direct3D shaders

The shaders directory has three shaders for the game on Windows, likely related to the leftover Windows builds of the game.

basicmodel.fx:


Texture2D DiffuseMap : register(t0);
SamplerState linearSampler : register(s0);


cbuffer simpleConstantBuffer : register( b0 )
{
	matrix worldmatrix;
	matrix viewmatrix;
	matrix projectionmatrix;
	matrix texturematrix;

	float4 displayColour;
};


struct VertexShaderInput
{
    float2 IN_uv : TEXCOORD0;
	uint4 IN_vertexcolour :   COLOR0;
	float3 IN_normal : NORMAL0;
	float3 IN_position : POSITION0;
    
	
	
};

struct PixelShaderInput
{
    float4 position : SV_POSITION;
    float2 uv : TEXCOORD0;
	float4 colour: COLOR0;
	
};

//--------------------------------------------------------------------------------------
// Vertex Shader
//--------------------------------------------------------------------------------------
PixelShaderInput VS( VertexShaderInput Input )
{
		PixelShaderInput result;

		float4 pos;
		
		pos.xyz=Input.IN_position;
		pos.w=1.0;

		// Transform the vertex position into projection space.
		pos = mul(pos, worldmatrix);
		pos = mul(pos, viewmatrix);
		pos = mul(pos, projectionmatrix);
		
		result.uv = Input.IN_uv;

		result.colour = Input.IN_vertexcolour / 255.0f;

		result.position = pos;
		return result;
}


//--------------------------------------------------------------------------------------
// Pixel Shader
//--------------------------------------------------------------------------------------
float4 PS( PixelShaderInput input ) : SV_Target
{
    float4 textureSample = DiffuseMap.Sample(linearSampler, input.uv) *  input.colour ;
	

	return textureSample;
///	return float4( 1.0f, 1.0f, 0.0f, 1.0f );    // Yellow, with Alpha = 1
}

gles1_vertex_unlit.fx:


Texture2D DiffuseMap : register(t0);
SamplerState linearSampler : register(s0);


cbuffer simpleConstantBuffer : register( b0 )
{
	matrix worldmatrix;
	matrix viewmatrix;
	matrix projectionmatrix;
	matrix texturematrix;

	float4 displayColour;
};


struct VertexShaderInput
{
    float3 IN_position : POSITION0;
    float3 IN_normal : NORMAL0;
	float3 IN_tangent :  NORMAL1; 
	float3 IN_bitangent :   NORMAL2; 
	float4 IN_vertexcolour :   COLOR0;
	float2 IN_uv : TEXCOORD0;
	
};

struct PixelShaderInput
{
    float4 position : SV_POSITION;
    float2 uv : TEXCOORD0;
	float4 colour: COLOR0;
	
};

//--------------------------------------------------------------------------------------
// Vertex Shader
//--------------------------------------------------------------------------------------
PixelShaderInput VS( VertexShaderInput Input )
{
		PixelShaderInput result;

		float4 pos;
		
		pos.xyz=Input.IN_position;
		pos.w=1.0;

		// Transform the vertex position into projection space.
		pos = mul(pos, worldmatrix);
		pos = mul(pos, viewmatrix);
		pos = mul(pos, projectionmatrix);
		
		result.uv = Input.IN_uv;

		result.colour = (Input.IN_vertexcolour / 255.0f) * (displayColour / 255.0f);

		result.position = pos;
		return result;
}


//--------------------------------------------------------------------------------------
// Pixel Shader
//--------------------------------------------------------------------------------------
float4 PS( PixelShaderInput input ) : SV_Target
{
    float4 textureSample = DiffuseMap.Sample(linearSampler, input.uv) *  input.colour ;
	

	return textureSample;
///	return float4( 1.0f, 1.0f, 0.0f, 1.0f );    // Yellow, with Alpha = 1
}

gles1_vertex_unlit_notexture:


Texture2D DiffuseMap : register(t0);
SamplerState linearSampler : register(s0);


cbuffer simpleConstantBuffer : register( b0 )
{
	matrix worldmatrix;
	matrix viewmatrix;
	matrix projectionmatrix;
	matrix texturematrix;

	float4 displayColour;
};


struct VertexShaderInput
{
    float3 IN_position : POSITION0;
    float3 IN_normal : NORMAL0;
	float3 IN_tangent :  NORMAL1; 
	float3 IN_bitangent :   NORMAL2; 
	float4 IN_vertexcolour :   COLOR0;
	float2 IN_uv : TEXCOORD0;
	
};

struct PixelShaderInput
{
    float4 position : SV_POSITION;
    float2 uv : TEXCOORD0;
	float4 colour: COLOR0;
	
};

//--------------------------------------------------------------------------------------
// Vertex Shader
//--------------------------------------------------------------------------------------
PixelShaderInput VS( VertexShaderInput Input )
{
		PixelShaderInput result;

		float4 pos;
		
		pos.xyz=Input.IN_position;
		pos.w=1.0;

		// Transform the vertex position into projection space.
		pos = mul(pos, worldmatrix);
		pos = mul(pos, viewmatrix);
		pos = mul(pos, projectionmatrix);
		
		result.uv = Input.IN_uv;

		result.colour = (Input.IN_vertexcolour / 255.0f) * (displayColour / 255.0f);

		result.position = pos;
		return result;
}


//--------------------------------------------------------------------------------------
// Pixel Shader
//--------------------------------------------------------------------------------------
float4 PS( PixelShaderInput input ) : SV_Target
{
    //float4 textureSample = DiffuseMap.Sample(linearSampler, input.uv) *  input.colour ;
	float4 textureSample = input.colour ;
	

	return textureSample;
///	return float4( 1.0f, 1.0f, 0.0f, 1.0f );    // Yellow, with Alpha = 1
}

gles1_vertex_unlit_notexture:


Texture2D DiffuseMap : register(t0);
SamplerState linearSampler : register(s0);


cbuffer simpleConstantBuffer : register( b0 )
{
	matrix worldmatrix;
	matrix viewmatrix;
	matrix projectionmatrix;
	matrix texturematrix;

	float4 displayColour;
};


struct VertexShaderInput
{
    float3 IN_position : POSITION0;
    float3 IN_normal : NORMAL0;
	float3 IN_tangent :  NORMAL1; 
	float3 IN_bitangent :   NORMAL2; 
	float4 IN_vertexcolour :   COLOR0;
	float2 IN_uv : TEXCOORD0;
	
};

struct PixelShaderInput
{
    float4 position : SV_POSITION;
    float2 uv : TEXCOORD0;
	float4 colour: COLOR0;
	
};

//--------------------------------------------------------------------------------------
// Vertex Shader
//--------------------------------------------------------------------------------------
PixelShaderInput VS( VertexShaderInput Input )
{
		PixelShaderInput result;

		float4 pos;
		
		pos.xyz=Input.IN_position;
		pos.w=1.0;

		// Transform the vertex position into projection space.
		pos = mul(pos, worldmatrix);
		pos = mul(pos, viewmatrix);
		pos = mul(pos, projectionmatrix);
		
		result.uv = Input.IN_uv;

		result.colour = (Input.IN_vertexcolour / 255.0f) * (displayColour / 255.0f);

		result.position = pos;
		return result;
}


//--------------------------------------------------------------------------------------
// Pixel Shader
//--------------------------------------------------------------------------------------
float4 PS( PixelShaderInput input ) : SV_Target
{
    //float4 textureSample = DiffuseMap.Sample(linearSampler, input.uv) *  input.colour ;
	float4 textureSample = input.colour ;
	

	return textureSample;
///	return float4( 1.0f, 1.0f, 0.0f, 1.0f );    // Yellow, with Alpha = 1
}