We just released a prototype of the cancelled SNES port of Puggsy! Take a look!
As always, thank you for supporting The Cutting Room Floor on Patreon!

Sentient (PlayStation)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen


Developer: Psygnosis
Publisher: Psygnosis
Platform: PlayStation
Released in US: March 31, 1997
Released in EU: 1997

SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.

Perhaps one of the strangest and most non-linear adventure games of its generation? You bet it.

Random Text Fragments

Unless noted otherwise, these appear in the US release of the game and can be found through sector editing/viewing.

SoftImage Guides

A portion of one of the guides is at 0x86EA1DC in the disc.

er symbol followed by its constant value.
>            _DATA
>            my_factor 1.0
>            my_color 0.5 0.5 0.5
>            my_boolean  on
>            _END
>This allows you to reuse the same shader code to provide different
>shaders as far as the shader user interface is concerned.  manages the
>source code and the declare statement correctly under these
>circumstances in order to avoid multiple declare, code, and link
>statements (causing errors).
>Setting Shader Options
>Some shaders require that certain rendering options be set. For
>example, an output shader may require depth channel and normal vector
>information. To provide this information, you must set the
>corresponding options so that mental ray renders the required
>Some options can be set by users via the Render Setup dialog in
>SOFTIMAGE 3D.  However, you can also set options in the _SHADER_OPTIONS
>section of a shader descriptor file:
>            _SHADER_OPTIONS
>            DEPTH ON
>            LABEL ON
>            NORMAL ON
>            RGBA16 ON
>            _END
>| Output Shader Option  | Description                            
>| DEPTH                 | Render depth channel information        
>| LABEL                 | Renders tag channel (label) information. For
>|                       | pixel, a label identifies the nearest object
>to a
>|                       | camera ray at a given intersection point.
>| NORMAL                | Render normal vectors for ray intersection
>| RGBA16                | Render 16 bits per channel

Marketing E-Mail

0x86EEB5C is an internal e-mail which mentions employees from Psygnosis' internal marketing and PR division.

 a European basis.
       Within this team Steve Joiner, with Cathy Thompson and Dawn Lambert,
  will continue to deal with their existing customers. They will add new
  countries to their line up as we simoultaneously recruit personnel to
  deal directly in Spain, Benelux and Scandinavia.
       Carolyn Seagers` current international PR role will continue, along
  with a new position of International Marketing Manager intended to fully
  exploit the marketing opportunities in these countries.

  Please join me in wishing everyone well in their new positions.
  It will take us at least a couple of months to fully achieve this
  transition, but I believe it will allow us to realize the full potential
  of the great product line-up for `96 and `97 and prepare us well for the
  huge challenges ahead in an increasingly competitive market place.


SoftImage Support E-Mail

0x86EEEE6 contains a partially saved message to SoftImage Support.

>From: 	qarl@cs.wustl.edu[SMTP:qarl@cs.wustl.edu]
>Sent: 	Friday, April 12, 1996 2:59 PM
>To: 	betaSDK@softimage.co.uk
>Subject: 	SELECT.mdl?!
>I notice that the Oz shaders are using SI extensions which don't seem
>to be documented.
>Namely, the March_Smoke and Fur shaders allow the user to select models
>as parameters, using a new syntax "SELECT.mdl.1".
>This mechanism doesn't seem to be described anywhere.  In fact, page
>2-7 of the SDK Dialog book says "In this release only lights can be
>selected, so the type is .lig"
>What gives?
>- Karl


Here's some  documentation written since the SDK conference. This doc
explains how to write shader descriptor files and includes a description
of the the SELECT.mdl statement.

Stephen Blair
SDK Tech Writer

>Integrating Custom Shaders with SOFTIMAGE
>To integrate a typical custom shader, you must:
>o    Provide an interface that allows users to set shader parameters.
>o    Connect the user interface to the shader function (so that the
>va              FRAMECOUNT

Source Code

This source code fragment is for managing the CD playing mechanisms, coded in MIPS assembly. It's at 0x1347E08C.

r size
		beq	v1,zero,#onlyxa		;playing XA-AUDIO only
		add	v1,v1,t0		;v1->sector map byte
		sb	t9,(v1)			;flag sector occupied/errored
#onlyxa:	dec	t5			;decr sectors left to load
		beq	t5,zero,Endfilm1	;all sectors loaded
		sw	t5,flm_scount(a1)
		lh	t2,(v0)			;t2=FDB sector size
		inc	t0			;incr FDB sector count
		bne	t0,t2,#nowrap		;FDB not full
		addc	a0,800h
		lw	a0,FDBbase		;reset DMA destn address
		move	t0,zero			;reset FDB sector counter
#nowrap:	sh	t0,flm_fdbcount(a1)	;write back FDB sector count
		sw	a0,flm_destn(a1)	;write updated destn address
Dummy:		jr	ra
		addc	sp,14h
Format0:	lh	t2,(v0)			;t2=FDB sector limit
		sb	t4,(v1)			;flag sector occupied
		inc	t0			;incr FDB sector count
		bne	t0,t2,#nextone		;count not at limit
		addiu	t4,a0,800h
		addc	v0,2			;point to next sector limit
		lh	t2,(v0)			;and read it
		sw	v0,flm_fdbcptr(a1)	;write updated pointer
		beq	t2,zero,Lastone		;load final sector
		move	t0,zero			;reset FDB sector counter
		lw	t4,FDBbase		;reset DMA destn address
#nextone:	sh	t0,flm_fdbcount(a1)	;write back FDB sector count
Nextoneh:	jal	IncMSS			;incr CDP sector address
		sw	t4,flm_destn(a1)	;write updated destn address
		sb	t3,Command		;instigate this sector's DMA
		lw	ra,10h(sp)
		ori	a1,zero,200h
		j	CdGetSector
		addc	sp,14h
Lastone:	jal	CdGetSector		;instigate final sector's DMA
		ori	a1,zero,200h
		lw	a3,TheCDP		;a3->film's CD primative
Endfilm1:	lw	v1,SectionList
		lhu	a2,cdpr_section(a3)	;header section no
		scale	a2,a2,s_itemlen
		add	a2,a2,v1		;a2->header section descriptor
		j	Next_CDP		;process next CDP (if any)
		lh	t1,s_flags(a2)		;t1=header section flags
Setitup:	lh	t0,flm_hcount(a1)	;header sectors counter
		lh	t8,s_sect0(a2)		;header section start sector
		beq	t0,zero,#nexthsec	;load first header sector
		lw	t9,BufferBase
		sll	t8,t8,11		;800h*start sector
		add	v0,t8,t9		;v0->film header
		lh	t2,fh_hsecs(v0)		;t2=no of header sectors
		lh	t8,FDBsec

(Source: Decension, divingkataetheweirdo)