If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Kingdom: The Far Reaches (CD-i)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Kingdom: The Far Reaches

Developer: Capitol Disc Interactive
Publisher: Philips Media
Platform: CD-i Digital Video Cartridge
Released in US: 1995
Released in EU: 1995


CopyrightIcon.png This game has hidden developer credits.
DevTextIcon.png This game has hidden development-related text.


Hmmm...
To do:
Document the December 22nd, 1994 prototype.

Kingdom: The Far Reaches is a port of the arcade game Thayer's Quest with new character names as the old ones were considered "too 70s". It did well enough to receive a sequel the following year.

Developer Credits

At the beginning of the cdi_kingdom.xo and cdi_kingdom.xdm files are some programmer credits.

Kingdom - the Far Reaches
Runtime code and script by Jefferson Ogata
Database code and parser by Jim Moore
Database designed by Tim Phillips

Debugging Files

Elementary, my dear Cactus.
This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: Can this debug mode be reactivated in some way?

Two unused files can be found on the disc, both of which contain code and strings meant for a debugging mode. This mode would've been controlled using a keyboard and a CD-i dev kit.

cdi_kingdom.xdm

The first, larger file is cdi_kingdom.xdm, a debug version of the used file cdi_kingdom.xo. It can be split into three equal segments.

The first segment contains various error strings and debug text for Kingdom's gameplay and FMVs.

WARNING: %d: ./config.c: line %d:

**** FMV aborted ****
before: fm_vstat=0x%x, fm_astat=0x%x
 after: fm_vstat=0x%x, fm_astat=0x%x

Bad callback: class %d, value %d
PCB Stat=0x%04x

No fmv board
Couldn't get memory on plane A
Unable to load dv warning screen "%s".
Fmv/Memory problem

WARNING: %d: ./maze.flow: line %d:
mazeMap: invalid number of parameters

WARNING: %d: ./help.flow: line %d:
lousy params to copyPixmap
lousy params to setIcf
lousy params to setPo
lousy params to setPointer

WARNING: %d: ./app.flow: line %d:
lousy params to linkTables
couldn't link
lousy params to copyPixmap
lousy params to setIcf
lousy params to blitItem

BM
HH
OM
BS
CK
TS
CF
OS
SR
SS
ST
SU
WS
EB
PC
GC
SW
RI
SP
WG
IL
IC
LI
HM
=== game over

=== game won
=== Lathan wounded
=== Lathan healed
=== Lathan killed
=== enabling maze map
=== disabling maze map

=== init node
WARNING: %d: ./node.c: line %d:
nodeInit: pointers are not linked
nodeInit: uninitialized timer id in node

=== visit
=== unvisit
=== enter
nodeEnter: node: map load with no video play
nodeEnter: node: using default map

!!! total insanity!

=== event
 in
=== ignore event in limbo
nodeEvent: node: interface with no map
nodeEvent: node: using default action mask

=== leave
AUTO
RANDOM
ACTION(%d)
HEDGE(%d)
MAP(%d)
ITEM(%s)
any
TIMER
QUIT
%d(%d)

node not found
an integer argument was expected

 V
 VISIT(%s)
 UNVIS(%s)
 TIMER
 ITEM
 FMV(%d/%d)
 FUNC(%d)
 MAP(%d)
 MASK(%d)
 ACT
 TRAVL
 HEDGE
 RANDM

      on
-> %s
ignore
if visited(%s)
if !visited(%s)
      no edges

Node Debugger Commands
A <id>        Send ACTION event
C             Toggle autosave
D <node>      Describe node
G <node>      Go to node
H <id>        Send HEDGE event
I <name>      Send ITEM event
M <id>        Send MAP event
O             Send AUTO event
S             Show game status
T             Send TIMER event
U <node>      Unvisit node
V <node>      Visit node

ction id:
action mask ids must be >= 10

Autosave %s
on
off

escribe node:
   Node

o to node:

edge id:
hedge ids must be >= 0

tem name:
item "%s" not found

ap id:
map ids must be >= 1

tatus:
   In node

Inventory:
   %s: quantity %d

Visited nodes:
,
   %s
, %s

imer name:
timer "%s" not found

nvisit node name:

isit node name:
%s

Glue
SP
HH
WG
IL
IC
LI
HM

*** asynchronous video play complete
*** asynchronous loop done
*** stopping map load
*** stopping loop play
*** asynchronous map load complete

WARNING: %d: ./glue.c: line %d:
glueMapLoad: play already happening! what's happening?
Invalid map sector: %d

*** asynchronous video play at %d
gluePlayVideo: play already happening! huh?

*** init glue
*** found a timer configuration file
*** timer %s: %d seconds
glueInit: bad NVR configuration file

glueAttachTables: buffer is fucked
glueAttachTables: link failed
glueAttachTables: bad nodes pointer
glueAttachTables: bad nodeFuncs pointer

*** syncing inventory
*** removing item %d qty %d
*** adding item %d qty %d

*** interface VIDEO
*** interface ACTION
*** interface TRAVEL
*** interface HEDGE
*** interface EXIT

*** using action mask %d
starting running timer %s
*** starting timer %s
*** stopping timer %s
*** timer %s elapsed: creating event
*** dock lifeforce timer
*** undock lifeforce timer

*** saving game
glueGameSave: cannot create NVR file
glueGameSave: error saving header to NVR file
glueGameSave: error saving inventory to NVR file
glueGameSave: error saving saved inventory to NVR file
glueGameSave: error saving node flags to NVR file

canRestore: unable to open NVR file
canRestore: bad read on header
canRestore: bad sync in header
canRestore: invalid node count in header
glueGameRestore: bad read on inventory
glueGameRestore: bad read on saved inventory
glueGameRestore: bad read on node flag for "%s"

Timers:
   %s: %d/%d ticks elapsed [%d,%d]

Play:
none
video
map load
loop

Interface:
action
travel
hedge
exit

*** generating map event: %d
*** save requested
*** quit requested
*** generating item event: %d
*** generating action event: %d
*** generating hedge event: %d
*** starting new game
*** starting restored game
*** making fmv sequences interruptible
*** stopping fmv play
glueHandler: map load with no info
*** asynchronous map load at %d
glueHandler: soundloop play with no info
*** asynchronous loop play at %d

WARNING: %d: ./c_scroller.c: line %d:
invalid item %d
double add item %d
double remove item %d

WARNING: %d: ./c_map.c: line %d:
gats_imageDup failed: d=%d, s=%d

<pan %s, dx %d, dy %d, x %d, y %d, hs %d>
on
off

Maze

WARNING: %d: ./c_maze.c: line %d:
transparent color not found!

BLAM! hit the bounds of the image
BLAM! moving into a wall
CD_pm_rl_decode failed! wall = %d

CD_cp_setpos: Can't set SET_POS letter.
./CD_cp_setpos.c

./CD_pm_show.c

RP PLAY DONE
RP AUDIO BUF FULL
RP DATA BUF FULL
RP FX TIMER
RP VIDEO BUF FULL
RP FMV PIC
RP FMV LPD
RP FMA UNF
CD_rp_play: Play attempt with uninitialized context.
./CD_rp_play.c
CD_rp_play: Map load failed.

Error! curAsset %d Audio PCL at 0x%08x has type %ld!
audio in, PCL Buf 0x%08x

Error! curAsset %d Data PCL at 0x%08x has type %ld!
data in, PCL Buf 0x%08x

FX occurs before buffer is ready! FX %d Buffer %d Type %d
*FX alarm went off*
SetFMVTrigger: ERROR setting FMV triggers
ClearFMVTrigger: ERROR clearing FMV triggers
SetFMATrigger: ERROR setting FMA triggers
ClearFMATrigger: ERROR clearing FMA triggers

CD_rp_play(): map read failed, 
retry attempt #%d
trying backup map at sector %ld
I give up, calling done_func

PlayFMVCleanup: ERROR aborting FMV
PlayFMVCleanup: ERROR aborting FMA
Error during play (stat = 0x%x)!
FMV stat = 0x%x
FMA stat = 0x%x
PlayDone: Play is done!
Setting PCL 0x%x MapLoc 0x%x Size %d

SetupFMV: ERROR setting FMV triggers
SetupFMV: ERROR setting FMA triggers

CD_rp_play(): cur map file has no channel %d
Couldn't start FMV decoder?!?  Stat = 0x%x
Couldn't start FMA decoder?!?  Stat = 0x%x
Playing record at sector %ld
Couldn't play record?!?
Error! curAsset %d Video PCL at 0x%08x has type %ld!
submode 0x%02x
coding 0x%02x
video in, PCL Buf 0x%08x
Setting pixmap %d's LAT to buffer %d

>>>>>>> LAST FMV PIC DISPLAYED <<<<<<<
>>>>>>> AUDIO UNDERFLOW (FINISHED) <<<<<<<

RpSetFMVTrigger: ERROR setting FMV triggers
RpClearFMVTrigger: ERROR clearing FMV triggers
RpSetFMATrigger: ERROR setting FMA triggers

RP SEEK DONE
RP SEEK TIMEOUT
CD_rp_ss_seek: seek timeout occurred
./CD_rp_ss_seek.c
CD_rp_ss_seek: seek failed
CD_rp_ss_seek: retrying seek
CD_rp_ss_seek: ss_seek failed
CD_rp_ss_seek: seek already in progress!

CD_rp_load_map(): error during seek to map.
./CD_rp_load_map.c
Couldn't load map file. Path %d PCB_Chan 0x%0x
CD_rp_load_map/PlayDone(): unknown status 0x%04x

Starting FX!
./CD_rp_task.c
CD_rp_task: invoking effect %d
CD_rp_task: invoking effect %d buffer index %dID %d
CD_rp_task: PLAY_DONE flag set

The second segment contains the data of Gats, a program by CapPro (another part of Capitol Multimedia) designed to create and test CD-i application files. It also has various functions that focus on the game engine and its interactions with the CD-i.

Gats Generic Application
Copyright 1994 CapPro, a division of Capitol Multimedia
WARNING: %d: gats_main.c: line %d:  Cannot get name of CD device
Cannot chdir to CD device "%s"
Cannot chxdir to CD device "%s"
CD_applinit failed!!!
FMV board not installed!!!
main: ss_seek failed
cdi_gats_mail Could not open video event CD_rp_init failed!!!
main: ss_abort failed
main: emulator mode: using CD_rp_lseek
main: error occurred during ss_seek
main: using CD_rp_ss_seek
No joy in Mudville!!!
Gats application exiting. Thank you and have a nice day.

WARNING: %d: gats_image.c: line %d:
pixmapDup: CD_pm_copy failed, dest 0x%06x, src 0x%06x
gats_imageDup: invalid destination image id
gats_imageDup: invalid source image id
gats_imageMatteCut: matte cut %dx%d is nasty!
gats_imageMatteCut: invalid register value %d

WARNING: %d: gats_link.c: line %d:
gats_linkVerify: buffer is not longword-aligned
gats_linkVerify: segment header is corrupt
gats_linkVerify: segment has bad crc
gats_linkSegment: unresolved reference: %s

WARNING: %d: gats_msg.c: line %d:
gats_msgPut: message queue full: message type %d
gats_msgDispatch: called recursively
gats_msgAddListener: no free queue nodes:
gats_msgAddListener: multiple add attempt:
gats_msgRemoveListener: not found:
***** Message Queue *****
 	%d
***** Listener Queue (%d free) *****
Play error

Play done: status = 0x%04x
WARNING: %d: gats_play.c: line %d:
doneHandler: mv_hide failed
picFMV: mv_pos failed
picFMV: mv_window failed
gats_playInit: mv_selstrm failed
gats_playInit: mv_borcol failed
gats_playInit: mv_org failed
gats_playInit: mv_pos failed
gats_playInit: mv_window failed
gats_playInit: mv_info failed.
gats_playInit: mv_show failed
gats_playInit: mv_hide failed

Play Error: status=0x%x
Play: RTF %d  Sector %d  %s (Async)
(Sync)... gats_playEnvironment: mv_selstrm failed
gats_playEnvironment: mv_pos failed
gats_playEnvironment: mv_window failed
Play failed!
done

gats_playStop: mv_hide failed
gats_playStop: CD_rp_stop failed
gats_playPause: mv_pause failed
gats_playPause: CD_rp_pause failed
gats_playContinue: play is not paused
gats_playContinue: mv_continue failed
gats_playContinue: CD_rp_continue failed

WARNING: %d: gats_ifx_msg.c: line %d:
gats_ifxMsg: no message to send
Generic Button
<hs %d, st %d, msk 0x%04x, smsg %d, imsg %d, omsg %d>
Generic Blit Button
<hs %d, st %d, msk 0x%04x, smsg %d, imsg %d, omsg %d>
Generic Matte Button
<hs %d, st %d, msk 0x%04x, smsg %d, imsg %d, omsg %d>
Generic Clock
<f %d, omsg %d, smsg %d, tmsg %d, st %d, off %d, rem %d, elap %d>

Generic Colorkey
WARNING: %d: gats_c_colorkey.c: line %d:
colorkeyHandler: invalid image id: %d
<set %d, rst %d, id %d, st %d, r %d, g %d, b %d>
Generic Cursor
<set %d, rst %d, st %d, cur 0x%06x>
Generic Control Flow
<st %d>
Generic Fx
<strt %5d, im %2d, aux %2d, func 0x%06x, parm 0x%06x>
Generic Function
<trig %d, func 0x%06x, nprm %d, parm 0x%06x>
Generic Group
<list 0x%06x, num %d>

Generic Hotspot
WARNING: %d: gats_c_hotspot.c: line %d:
CD_cp_handler error
hotspotSetMask: too many hotspots
hotspotSetMask: invalid mask id
<type %04x, msk %d, st %d, hs %d, max %d>
%%%%%d:%d:%d:%x:%d:%d
Generic Synchronous Play
<loc %d>
Generic Menu
<strt %d stop %d, msk %d, hsps %d, st %d>
Generic Self-showing Menu
<smsg %d emsg %d, msk %d, hsps %d, st %d, fg %d, bg %d, cm %d>
Generic Self-displaying Panel
<strt %d, stop %d, msk %d, hsps %d, st %d, fg %d, bg %d, cm %d>
Generic Repeater
<tmsg %d, omsg [ %s%d  ,  ]>
Generic Disc Play
inited playing paused done huh?
<strt %d, stop %d, dmsg %d, loc %d, %s>

Generic Trans
WARNING: %d: gats_c_trans.c: line %d:
transHandler: invalid image id: %d
<set %d, rst %d, id %d, st %d>
gats_playRpContext play_buffers errno DEBUGGER INTERRUPT
uffer index:  umping colored memory:

 > 
Class name:  class "%s" not found in listener queue
class flags[%d]:  essage type:  
Plane A over B
 
Plane B over A
ointer position: (%d, %d)  (%d << 1, %d << 1)
p debug level [%d]:  
no play in progress
 
no path
 sector %d
ignoring %% command
%d:%d:%d:%x:%d 
usage: %%<state>:<x>:<y>:<type>:<hotspot>
..continuing
sending GATS_MSG_KILL
  - print this message
b  - display buffer contents
c  - control table editor
d  - dump colored memory diagnostic
e  - memory editor
f  - set class flags
h  - hotspot info
m  - put a message
o  - swap plane order
p  - print pointer position
q  - dump message and listener queues
r  - set rp debug flags
t  - dump tasks
w  - enter a debug wait (blocks tasks but not signals)
!  - dump signal handlers
%%  - insert hotspot event
&  - show memory locations
*  - show memory values
. - continue from debug wait
^C - enter a signal-state debug wait
^\ - kill application

WARNING: %d: gats_debug.c: line %d:
debugit: ss_ssig failed
Waiting in debug task
Interrupt debug wait: Press . to continue
interruptHandler: ss_rel failed
%s:  Press . to continue
gats_debugInit: ss_ssig failed
gats_debugExit: ss_rel failed

CD_callback: Unhandled signal received: class %d, value %d
CD_callback_init.c

CD_callback_attach: Illegal callback structure.
CD_callback_attach.c

CD_callback_replace: Illegal callback structure.
CD_callback_replace.c

CD_callback_remove: Illegal callback structure.
CD_callback_remove.c

Callbacks:
CD_callback_dump.c
Class %2d:
    Value %2d (0x%08x): 
0x%08x,0x%08x    
    Value  * (0x%08x): 0x%08x,0x%08x    
%s
No Label
                0x%08x,0x%08x   

CD_mm_send failed for new event
CD_cp_flush.c
CD_mm_send failed requeued letter (type=0x%x)

CD_cp_handler: letter not an event. Type = %d
CD_cp_handler.c

Can't create cp mailbox.
CD_cp_install.c
CP install failed.
cdi_cd_cp

cdi_cp_mail
Incompatible versions: 
libraries (%d), cursor process (%d)
CD_cp_mail: Can't send letter for type %d.
CD_cp_mail.c
CD_cp_qsize: Can't send Q_SIZE letter.
CD_cp_qsize.c
CD_cp_setlimits: Can't send OP_CP_LIMITS letter.
CD_cp_setlimits.c

CD_cp_mail failed for query request.
CD_cp_status.c
CD_mm_send failed requeued letter (type=0x%x)

CD_hs_spit:  no current hotspot tree
CD_hs_dump.c
Hotspot Tree:

addr:0x%x type:RECT x,y:(%d,%d) 
w,h:(%d,%d) %sACTIVE
IN
addr:0x%x type:MASK c:d %sACTIVE

hs_do_event:    GLOBAL doing type: 0x%08x hs: 0x%08x
hs_do_event.c
hs_do_event: checking type: 0x%08x hs: 0x%08x
hs_do_event:    doing type: 0x%08x hs: 0x%08x

CD_iff_to_mem: Error opening iff file.
CD_iff_to_mem.c
CD_iff_to_mem: Can't open IFF context for input.
CD_iff_to_mem: form type must be IMAG.
CD_iff_to_mem: Error reading image header.
CD_iff_to_mem: Can't allocate image buffer.
CD_iff_to_mem: iff_read_data returned: %d size is %d

IFX
CD_ifx_get_params(): param too big (%d/%d)
CD_ifx.c
CD_ifx_perform(): bad fx (%d)

CD_iff2fct_clut.c

CD_tasks: execute
CD_task.c
(0x%x) recursion (%d)
task %d:0x%x

task_num %d init 0x%x exec 0x%x
CD_task_dump.c
term 0x%x data 0x%x

Could not allocate task - task array full
CD_task_install.c

CD_rp_continue: Play not paused. Context 0x%x
CD_rp_continue.c
CD_rp_continue: Physical play done. Context 0x%x

PCB: Stat = 0x%x Sig = 0x%x Rec = 0x%x
CD_rp_debug_pcb.c
AChan=0x%x Chan=0x%x
Video PCLs:
Audio PCLs:
Data PCLs:

Channel %d:
  PCL=0x%x Ctrl=0x%x Smode=0x%x
Type=0x%x Sig=0x%x Buf=0x%x
BufSz=%d

Dumping buffer #%d
CD_rp_dump_buffer.c
datamap, buffer @ 0x%08x, dm @ 0x%08x
length=%d  id=%d
audiomap, buffer @ 0x%08x, am @ 0x@08x
length=%d  id=%d  type=%d
pixmap, buffer @ 0x%08x, pm @ 0x%08x
flags=0x%02x  id=%d  type=0x%04d
map=0x%08x  addr_table=0x%08x
size=%d  plane=%d  bpp=%d
w=%d  h=%d
org_x=%d  org_y=%d
Buffer type 0x%08x unrecognizable.  FMV?  Corrupted?  Never loaded?

CD_rp_dump_map(): bad key [0x%04x]
CD_rp_dump_map.c
chanMask 0x%08x  aChanMask 0x%04x
start sector %ld offset to next %d
# Video Assets: %d
  Size %3d
  Buff %3d
# Audio Assets: %d
# Data Assets: %d

CD_rp_pause: Play already paused. Context 0x%x
CD_rp_pause.c
CD_rp_pause: Attempting pause before a sector read.Context 0x%x
CD_rp_pause: Physical play is done. Context 0x%x

Play is already finished!
CD_rp_stop.c

Tried to start FX while play paused!
rpfx.c
No more FX (done %d of %d)!!
During play, FX offset %d startPos %d
During play, alarm for FX #%d @ %d cur_pos %d
After play, alarm for FX #%d @ %d
deleting rp fx alarm %d
Can't set alarm for FX!
alarm %d set to occur in %d ticks

Can't open FMV video path
CD_applinit.c
FMV Paths opened
Opened Full Motion descriptors
Load module %s:%d
CD_appl_init: Can't load module: %s into plane %d
CD_appl_init: Can't open file '%s'

Can't ss_enable controls
CD_cdroot.c

CFREE: _srtmem error %d 0x%x
CD_cfree.c

Couldn't find FONT8X8!
CD_disc_error.c

CD_malloc grabbing %d bytes from %x
CD_malloc.c
(%s:%d)

CD_free: INVALID POINTER : 0x%x SYNC : 0x%x
CD_free releasing %d bytes at 0x%x

init
Can't get init module
CD_get_plane.c

line_event

CD_vd_open : csd_devname fails
CD_vd_open.c
CD_vd_open : Could not open %s

Can't get name of monitor.
vd_compat.c
Can't get monitor parameters.
LI= 
Can't determine the monitor type.
625 
TV

The final segment contains the CD-i graphics editor/second segment-esque strings seen in the debug files of CapDisc's games. It also contains the text of a memory editor made by 'VDS and JHO', present in some of their later titles.

Quit 
New Control Table
Dissassemble
Enter Instruction
Help
Search for Instruction
Insert NOPs into the LCT
1.02
CD control table editor V%s

Starting line?
Number of lines?

8 (normal)
4 (double)
8 (high)

Half
Full
Black
Blue
Green
Cyan
Red
Magenta
Yellow
White

OFF
CLUT8
CLUT7/RL7
CLUT7/RL7 (Dual)
DYUV
CLUT4/RL3
RGB555
QHY

END
IFCA
IFCB
Matte Flag Off
Matte Flag On
Matte Flag Off + IFCA
Matte Flag On + IFCA
Matte Flag Off + IFCB
Matte Flag On + IFCB

1
2
A over B
B over A
x2
x4
x8
x16

Normal
Runlength
Mosaic
Bit = 0
Bit = 1
CKey = FALSE
CKey = TRUE
MFlag 0 off
MFlag 0 off & CKey FALSE
MFlag 0 on
MFlag 0 on & CKey TRUE
MFlag 1 off
MFlag 1 off & CKey FALSE
MFlag 1 on
MFlag 1 on & CKey TRUE

off
on
Line?
Column?

clut number
red value
green value
blue value

matte register
Enter opcode 
matte flag 
icf 
x position
Enter brightness
Enter color 
clut bank
Not allowed!

Enter mode
Enter pixel repeat
Enter Bits/pixel
icf value
Enter plane A ICM
Enter plane B ICM
Enter # mattes 
external video 
enable pixel hold 
pixel hold factor
Enter plane order 
mixing: 0=OFF, 1=ON
Enter plane A TCI
Enter plane B TCI
y start value
u start value
v start value
Write failed, errno=%d!

FCT 0
FCT 1
LCT 0 
LCT 1
PAL LCT 0
PAL LCT 1
Decode which control table?

8bpN
8 bits/pixel, Normal resolution
4bpD
4 bits/pixel, Double resolution
8bpH
8 bits/pixel, High resolution

Any color can be at 1/2 intensity
??
Illegal 
--
Off
c4
Clut 4 or RunLength 3
c7
Clut 7 or RunLength 7
77
Clut 7/7 or RunLength 7/7 (dual clut)
c8
Clut 8
dv
r5
qy
???

Illegal value
end
Ignore all commands in higher registers
icfa
Change ICF value for plane A
icfb
Change ICF value for plane B
MFoff
Turn Matte Flag off
MFon
Turn Matte Flag on
offIa
Turn Matte Flag off and change ICF for plane A
onIa
Turn Matte Flag on and change ICF for plane A
offIb
Turn Matte Flag off and change ICF for plane B
onIb
Turn Matte Flag on and change ICF for plane B

nml
rl
RunLength enabled
mos
Mosaic enabled
Illegal mode
b0
Transparency bit 0
B1
Transparency bit 1
cF
Color Key FALSE
cT
Color Key TRUE
m0F
Matte Flag 0 FALSE
m0FcF
Matte Flag 0 FALSE or Color Key FALSE
m0T
Matte Flag 0 TRUE
m0TcT
Matte Flag 0 TRUE or Color Key TRUE
m1F
Matte Flag 1 FALSE
m1FcF
Matte Flag 1 FALSE or Color Key FALSE
m1T
Matte Flag 1 TRUE
m1TcT
Matte Flag 1 TRUE or Color Key TRUE

Never transparent
Always transparent

CLUT<clut number> <red> <green> <blue>
<clut number>            0 -  63
<red>, <green>, <blue>   0 - 255
72
5.5

MR<register> <op> <matte flag> <icf> <x position>
<register>    0 -    7
op 
<matte flag>  0 -    1
<icf>         0 -   63
<x position>  0 - 1023
83
5.10.3

BKCOL <color>
color
91
5.13

CLTB <bank>
<bank>  0 - 3

DLS <address>
57
4.5.2.2

DPRM <mode> <pixel repeat> <bits/pixel>
mode 
<pixel repeat>   2, 4, 8, or 16
bits/pixel
59
4.6.1

ICF<plane> <value>
<plane>    A or B
<value>    0 - 63
79
5.9

ICM <icm A> <icm B> <# mattes> <external video> <clut bank>
icm A
icm B
<# mattes>         1 - 2
<external video>   0 - 1
<clut bank>        0 - 1
58

LINK LCT <address>
56, Note 1
4.5.1

MCOL<plane> <red> <green> <blue>
<plane>   A or B
<red>     0 - 255
<green>   0 - 255
<blue>    0 - 255
76
5.7.2.2

PHLD<plane> <enable> <value>
<plane>    A/B
<enable>   on/off
<value>    0 - 255
86
5.11.1.1

NOP
56

PO <value>
<value>    B over A  or  A over B
75
5.7.1

SIG video interrpt
74
5.6

TCOL<plane> <red> <green> <blue>

TCI <mix> <tci a> <tci b>
<mix>   on/of(f)
tci a>, <tci b
5.7.3

YUV<plane> <y> <u> <v>
<y>       0 - 255
<u>       0 - 255
<v>       0 - 255
61
4.6.2

Starting row
Starting column
Number of rows
Number of columns

Any Clut Instruction
Specific Clut Number
Any Matte Instruction
Specific Matte Register

Look for:
CLUT number
Matte Register

Start line?
Step (-1 or +1) ?
Instruction not found.
At line %d , column %d : %s

CLUT
MR
BKCOL
CLTB
DLS
DPRM
ICF
ICM
LCT
MCOL
PHLD
NOP
PO
SIG
TCOL
TCI
YUV
Choose Instruction Type:

Green Book Reference: Vol. I, V.%s, page V-%s

%s
%2d) %%-%ds
==>

<%s> is one of:
%-5s
%s

Allowed on plane A or B (may be set independently on each)
(different opcodes on each plane)
plane A only

CLUT%-2d %3d %3d %3d
CLTB set bank %-5d
DLS 0x%-13x
ICF%c %-14d
LINK
LCT 0x%-8x
MCOL%c %3d %3d %3d
PHLD%c %-3s %3d
on
off
%-19s
NOP
PO %-16s
B ovr A
A over B
SIG video interrupt
TCOL%c %3d %3d %3d
YUV%c %3d %3d %3d
ERROR in the CT??

Black
1/2 Blue
1/2 Green
1/2 Cyan
1/2 Red
1/2 Magenta
1/2 Yellow
1/2 White
Blue
Green
Cyan
Red
Magenta
Yellow
White
BKCOL %-13s

Dumping FCT #%d,  starting line=%d numlines=%d
%03d %s

Dumping LCT #%d,  start line=%d numlines=%d
%3d 
%s

: invalid address
: invalid array reference
: alignment error

%20s[]  0x%06x  [%d]
%20s    0x%06x  [%d]
 = 0x%02x
 = 0x%04x
 = 0x%08x

%20s[0]:
%20s

usage:
  r [<addr> [<len>]]
read memory
  w <addr> <byte1> [...]
write to memory
  m <addr1> <addr2>
CD_mem_diag()
  & print addresses
  * print values
  q quit editor
  <addr> may be one of:
    [0-9]*
   decimal quantity
    0x[0-9a-fA-F]
   hexadecimal quantity
    &<name>
   address of <name>
    <name>
   address <name> points to
    <name>[<index>]
   address of element <index> in <name>
Memory Editor V2.0 (by VDS and JHO) ***
%s usage: w addr [b1 [b2 [...]]]
usage: m <addr1> <addr2>
%-30s%-50s

device table
path table
process table
event table
Address             Size    Type    Tag
0x%08x-%08x %8d %-8.8s   %s
UNKNOWN

FREE
MODULE
DMAP
DMAPDESC
SMAP
SMAPDESC
DBLOCK
LINE ADR
PROC MEM
DEV MEM
PATH BUF
MOD MEM
RES NODE
RES TAG

%s
VIDEO1:
VIDEO2:
SYSRAM:

%s (line %d): WARNING: %d:
%s (line %d): ERROR: %d:

CD_ap_open : csd_devname fails
CD_ap_open.c
CD_ap_open : Could not open %s

cdi_kingdom.xdm_data

The second, much smaller file is cdi_kingdom.xdm_data, a debug version of the used file cdi_kingdom.xo_data. The only major change is the addition of five KBs of data at the end of the former file.