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

Shadow Man (Nintendo 64)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Shadow Man

Developer: Acclaim Studios Teesside
Publisher: Acclaim Entertainment
Platform: Nintendo 64
Released in US: March 9, 1999
Released in EU: July 31, 1999
Released in BR: 1999


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


Hmmm...
To do:
A debug display was found but no GameShark code was provided.

Shadow Man is a third person action/horror game for the Nintendo 64, based on the Valiant comic book series of the same name.

Test Map

ShadowManN64-testmap1.pngShadowManN64-testmap2.pngShadowManN64-testmap3.png

Present in the game is a test map which is a small maze-like room completely devoid of any objects. To access it, use the below code and press A at the main menu and you'll warp to the test map.

Version GameShark Code
USA D1196B3E 7674
81196B3E 76B0
(Source: Mezmorize (Classic Videogame Hacking))

Developer Notes

Present at 0x1A69375:

Filenames:
1st two characters refer to level number*
2nd two charcters refer to scene number (within that level)
3rd two charcters refer to line number (within that scene)
4th single character refers to character speaking (see KEY: above for 
details)
*TT & GN describe the Titles and the General game noises

Debug Texts

8000212C	audio/sndplayer.c
80002148	NGLISH_LEX
80002154	audio/synthesizer.c
800021D8	_SCENE17EX
800021E8	audio/env.c
80002364	audio/reverb.c
800023C4	AUDIO_SPEECHEX
80002534	io/sirawdma.c
800025A8	io/sirawwrite.c	

80028614	!fp_LEVELS_P

80031C48	fp_ANIMS

80600000	x:%d y:%d z:%d RAM:%dk (%d) Sector:%d Fr:%d
8060002C	%s - [BK]
80600038	FlatFaults : %d
	        DecompFaults : %d

80601D7C	audio\speech\english\generic\gn%04ds.wav

806020E8	Z buffer

80609F38	LOADING EVENTS
80609F7C	INIT : Initialise_Game_Primary_Services
80609FCC	INIT : Initialise_Game_EffectsTextures
80609FF4	INIT : Initialise_Game_Secondary_Services
8060A020	INIT : Initialise_Game_Adventure_Settings
8060A068	INIT : Initialise_Game_General
8060A088	INIT : Initialise_Game_Default_CutScene
8060A0B0	INIT : Initialise_Game_Level
8060A0FC	INIT : Initialise_Game_Lists
8060A144	INIT : Initialise_Game_Default_Scripts
8060A16C	INIT : Initialise_Game_Default_Values

8060DC40	LOADING RESOURCES %d-%d
8060DC88	RSC_D_SOREFIRE
8060DC98	RSC_SMOKERING2
8060DCA8	RSC_SMOKERING1

80614C30	level05\scene05\050500m.wav
80614C4C	level05\scene05\050501m.wav

8061A030	cutscene\scripts\english\swampday\0000.ncs
8061A060	cutscene\scripts\english\deadside\jaunty03.ncs

8061B1A0	audio\speech\english\%s
8061B1B8	Level
8061B1C4	Scene

806D6E10	%2d- %s (%d Page%s

Uncompiled Source Code

The Brazilian version contains a small portion of the game's source code at offsets 0x4B25D-0x4BFFE:

# 1 "game\\inc\\ShadCam.h" 1




# 1 "engine\\inc\\BSPDefs.h" 1
# 387 "engine\\inc\\BSPDefs.h"

# 5 "game\\inc\\ShadCam.h" 2


# 1 "engine\\inc\\List.h" 1
 





# 73 "engine\\inc\\List.h"

# 7 "game\\inc\\ShadCam.h" 2

# 1 "engine\\inc\\3DSPath.h" 1
# 24 "engine\\inc\\3DSPath.h"

# 8 "game\\inc\\ShadCam.h" 2


enum
{
	CAM_TRACK = 0,
	CAM_COMPASS,
	CAM_FREE,
	CAM_CUT,
	CAM_CUTSCENE,
	CAM_FOLLOWPATH,
	CAM_SNIPE,
	CAM_FANCY,
};

 
enum
{
	CAM_PATH_1 = 0,
	CAM_PATH_2,
	CAM_PATH_DW_CAM,			 
	CAM_PATH_DW_TARG,			 
	CAM_PATH_MG_CAM,			 
	CAM_PATH_MG_TARG,			 
	CAM_PATH_AS_CAM,			 
	CAM_PATH_AS_TARG,			 
	CAM_PATH_TEN_CAM,			 
	CAM_PATH_TEN_TARG,			 
	CAM_PATH_PROF_CAM,			 
	CAM_PATH_PROF_TARG,			 
};

enum {
	FCAM_SOULCOLLECT = 0,
	FCAM_SOULUP,
	FCAM_USETEDDY,
};

typedef struct
{
 
	UPKData		*RomFile;
	s16			FileID;
	t_3DS_PATH	*PathPtr;
}t_CAM_PATH_LIST;
typedef struct
{
	t_VECT		Pos;
	float		Frame;
	float		Speed;
	t_3DS_PATH	*Path;
}t_PATH_POINT;




typedef struct
{
	t_VECT	Source;
	t_VECT	Target;
	float radius;
}t_CAM_POS_DEF;


extern  t_CAM_POS_DEF CameraDistanceTable[];

 
extern int crouchcam;

extern Sint32	DistIndex;
extern Sint32	OldDistIndex;
extern Sint32	fOldDistIndex;


extern  Sint32		SnapCameraFlag;
extern	t_CAMERA	TrackCamera;
extern	t_CAMERA	FreeCamera;
extern	t_CAMERA	CutCamera;
extern	t_CAMERA	PathCamera;
extern	t_CAMERA	SnipeCamera;
extern	t_CAMERA	FancyCamera;
extern	Sint32		CameraMode;
extern	int crouchcam;
extern  t_CAM_PATH_LIST	CameraPaths[];

extern	void		SetCutawayCamera(t_CAMERA *Camera, t_VECT *sv,t_VECT *dv);
extern	void		CutawayCamera(t_CAMERA *Camera);
extern	t_LINKNODE	*CreateCamera(t_VECT *Pos, t_VECT *Rot, Sint32 id, Sint32 Var1, Sint32 Var2);
extern	void		UpdateIngameCamera(void);
extern	void		InitIngameCamera(void);
extern  void		InitFollowCam(t_3DS_PATH *SourcePath, t_3DS_PATH	*DestPath, float SrcSpeed, float DestSpeed, float SrcIndex, float DestIndex);
 
 
extern	void		InitCameraPathList(t_CAM_PATH_LIST *List);
extern	void		FollowPathUpdateCamera(t_CAMERA *Camera);
extern  void		PointFollowPath(t_PATH_POINT *PPoint);


# 22 "game\\cutscene\\inc\\CSCamera.h" 2



 
 
 
typedef
enum	e_CSCameraMode
{
	CSCAMERAMODE_FIXED	=	0,
	CSCAMERAMODE_LOOK_AT_ACTOR,
	CSCAMERAMODE_FOLLOW_PATH,
	CSCAMERAMODE_REL_ACTOR,
	CSCAMERAMODE_MOVING,

}	t_CSCameraMode;


 
 
 
extern	t_CAM_PATH_LIST	CameraPathListSwampEnterChurch[];
extern  t_CAM_PATH_LIST	CameraPathListIntro[];
extern	t_CAM_PATH_LIST	CameraPathListCredits[];





extern float	CutCamPanX;
extern float	CutCamPanY;
extern float	CutCamPanZ;
extern Sint32	CutCamPanXTime;
extern Sint32	CutCamPanYTime;
extern Sint32	CutCamPanZTime;




 
 
 
extern	Sint32	CutSceneGetCameraModeNumber	(const Uint8*);
extern	void	CutSceneUpdateCamera		(void);
extern	void	CSCameraShake				(float amplitude);





 
 
 
# 26 "game\\cutscene\\inc\\CutScene.h" 2







 
 
 
enum
{
	CS_DARKSOUL=0,
	CS_SHADCHANGE,
	CS_GIVE_TEDDY,
	CS_FREE_HANDS,
	CS_REMOVE_DARKSOUL,
	CS_HOLD_ECLIPSER,
	CS_GIVE_ECLIPSER_TO_NETTIE,
	CS_ECLIPSER_IN_SHADOWMAN,
	CS_REMOVE_ECLIPSER,
	CS_HOLD_DESERTEAGLE,
	CS_FIRE_PISTOL,
	CS_MILTON_FIRES,
	CS_MARCO_FIRES,
	CS_AVERY_FIRES,
	CS_HOLD_BEAR,
	CS_GIVE_BEAR_TO_LUKE,
	CS_LUKE_HIDES_BEAR,
	CS_REMOVE_BEAR,
	CS_DEMON_TROOPER,
	CS_MAKE_IT_LIGHT,
	CS_MAKE_IT_DARK
(Source: Shygoo)