the cutting room mirror

Sentient (PlayStation)

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
>information.
>
>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
>each
>|                       | pixel, a label identifies the nearest object
>to a
>|                       | camera ray at a given intersection point.
>------------------------------------------------------------------------
>-----
>| NORMAL                | Render normal vectors for ray intersection
>points.
>------------------------------------------------------------------------
>-----
>| 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.

  Nick.

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

Hi.

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
        nop
        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)