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

The Lion King III: Timon & Pumbaa

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

The Lion King III: Timon & Pumbaa

Developers: Tommy Xie, Dragon
Publisher: Dragon
Platform: Unlicensed NES
Released internationally: 1996


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


The Lion King III: Timon & Pumbaa is a game based off of The Lion King, created by Tommy Xie as coding practice.

Development Text

Create by:Tomsoft Studio.E-mail:tomsoft@ihw.com.cn.

Near the beginning of the ROM, at 0x41, is a developer credit left by the TomSoft SDK, used to develop this game.

Invalid stack size
Insufficient memory
2500 A.D. Linker  Copyright (C) 1985  -  Version 4.01f
Listing Destination  (N, T, D, E, L, P, <CR> = N) : 
Error Only Listing Destination  (T, D, P, <CR> = T) : 
LIST ON/OFF Listing Destination  (T, D, P, <CR> = T) : 
Enter Run Time Selection : 
Assembly Terminated By Operator
Can't Create Disk Listing File

Text leftover from 2500 A.D. Linker 4.01f, often used to program unlicensed NES games.

 Bank12Table                    
            6    397    CHKMEET_TAB
  0326      6    396    CHKTAB_FULL              
  0325      6    395    CHKTAB_SIZE 
  0324            87    CON_00E1 

 MainCartEntry 
?    Pre    CODE                               0000           11
          79     95    111    200    378    541    554    557    5626    360
CODEBUFFER                         02CD      6    112
COLORAREA                          0100      6    361
COLORBUFFER                        02CE      6    563
CON_0039                        =  0700      ?    
N_00E0                          =  0080      

 81     82     83     84     85     86     87     88     89     90     91D  
 92     936     81

CON_00E1                        =  0081      6     82
CON_00E2                        =  0082      6     83
CON_00E3                        =  0083      6     84
CON_00E4                        =  0084      6     85
CON_00E5                        =  0085      6     86
CON_00E6                        =  0086      6     87
CON_00E7                        =  0087

Page   18        Tue Nov 11 1997 20:30

Page   18      J

Defined            Symbol Name             Value                References
                                                                6     
88                 CON_00E8             =  0088                 6
89                 CON_00E9             =  0089                 6 
90                 CON_00EA             =  008A                 6
91                 CON_00EB             =  008B                 6
92                 CON_00EC             =  008C                 6
93                 CON_00ED             =  008D    
64                 CON_0104             =  0701

565    566    567    568    569    571    572    573    574    575    576?
578    579    580    581    582    583    585    586    587    588    589?
590    592    593    594    595    596    597    599    600    601    602

DataBankPort

603    604    607    608    609    610    611    612    614    615    616?
617    618    619    621    622    623    624    625    626    628    629?
630    631    632    633    636    637    638    639    640    641    643?
644    645    646    647    648    651    652    653    654    655    656?
658    659    660    661    662    663    666    667    668    669    670?
671    673    674    675    676    677    678    680    681    682    683?
684    685    687    688    689    690    691    692    694    695    696

K 1  SourceY                         ?
697    698    700    701    702    703    704    705    707    708    710?
711    712    714    715    716    717    718    719    720    721    722?
724    725     26    727    728    731    732    733    735    736    737?
739    740    741    743    744    745    747    748    750    751    753?
754    756    757    759    760    762    7      765    766    768    769?
771    772    774    775    777    778    780    781    783    78     786?
787    789    790    792    793    795    796    798    799    801    802

CO    64
CON_0174           ?

805    806    8      809    811    812    813    814    816    817    818Y
819    821    822    823    8 6

565    CON_0105                        =  0702      6
566    CON_0106                        =  0703      6
567    CON_0107                        =  0704      6
568    CON_0108                        =  0705      6
569    CON_0109                        =  0706      6
571    CON_010A                        =  0707      6
572    CON_010B                        =  0708      6
573    CON_010C                        =  0709      6     
574    CON_010D                        =  070A      6
575    CON_010E                        =  070B      6
576    CON_010F                        =  070C      6
578    CON_0110                        =  070D      6
579    CON_0111                        =  070E      6
580    CON_0112                        =  070F      6
581    CON_0113                        =  0710      6
582    CON_0114                        =  0711      6
583    CON_0115                        =  0712      6
585    CON_0116                        =  0713      6
586    CON_0117                        =  0714      6
587    CON_0118                        =  0715      6
588    CON_0119                        =  0716      6
589    CON_011A                        =  0717      6
590    CON_011B                        =  0718      6
592    CON_011C                        =  0719      6
593    CON_011D                        =  071A      6
594    CON_011E                        =  071B      6
595    CON_011F                        =  071C      6
596    CON_0120                        =  071D      6
597    CON_0121                        =  071E      6
599    CON_0122                        =  071F      6
600    CON_0123                        =  0720

       CON_0115                        
       CON_0124                        =  0721    

Tue Nov 11 1997 20:30

Page   19      J

Defined            Symbol Name             Value                References
6
602                CON_0125               =  0722               6
603                CON_0126               =  0723               6
604                CON_0127               =  0724               6
607                CON_0128               =  0725               6
608                CON_0129               =  0726               6
609                CON_012A               =  0727               6
610                CON_012B	

			BEQ		?NextLMotion
			LDA		MOTION+2,X
			AND		#$C0
			CMP		#$40
			BNE		?NextLMotion
			LDA		MOTION+4,X
			CMP	____OD    FER
			BNE		?NextLMotion
			JMP		?UpLocalFail
?NextLMotion:
			TXA
			CLC
			ADC		#$06
			TAX
			CMP		#$30
			BCC		?SearchLMotion
			L__	    BUFFER				;搜索局部敌物控制表。
			LSR		A
			LSR		A
			LSR		A
			TAX
			LDA		LocalObject,X
			PHA
			LDA		CODEBUFFER
			AND		#$07
			TA_
	                A
?ShiftLTable:
			CPX		#$00
			BEQ		?ShiftLTableOk
			LSR		A
			DEX
			JMP		?ShiftLTable
?ShiftLTableOk:
			AND		#$01
			CMP		#$01
		        BEQ   		pLocalOk
?UpLocalFail:
			LDA		#$FF
			RTS
?UpLocalOk:
			JSR		_InstallMotion
			RTS
;-----------------------------------------------------
    -------------------------------------------------+
; | 判断垂直填充条码时敌物坐标是否指定区域。	     |
; |	入口:RefIndex:在部件标注表内的偏移量__        |	  
; |	出口:TRUE动画在指定条码上。		     |
; |			FALSE指定条码上没有动画。	     |
; +--------------------------------------------------+
_CheckVR____ge    	LDY		RefIndex
			LDA		(ADDR2),Y		;判断是否是填充水平方向的坐标。
			CMP		POSTEMPX
			BEQ		?CheckHighX
			JMP		?OutOfRange
?CheckHighX:
	__IN    	LDA		(ADDR2),Y
			CMP		PAGETEMPX
			BEQ		?CheckY
			JMP		?OutOfRange
?CheckY:
			INY						;判断垂直方向是否在屏幕内。
			LDA		(ADDR2),Y
				    	POSTEMPY
			INY
			LDA		(ADDR2),Y
			STA		PAGETEMPY
			LDA		POSTEMPY
			SEC
			SBC		SCREEN_Y
			STA		POSTEMPY
			LDA		PAGETEMPY
			SBC____SC    E_Y
			BNE		?OutOfRange
			LDA		POSTEMPY
			CMP		#240
			BCS		?OutOfRange
			LDA		#$FF
			JMP		?ChkRangeExit
?OutOfRange:
			LDA		#$00
__hk    eExit:
			RTS
;-----------------------------------------------------
; +--------------------------------------------------+
; | 判断水平填充____码    物坐标是否指定区域。	     |
; |	入口:RefIndex:在部件标注表内的偏移量。	     |
; |	出口:TRUE动画在指定条码上。		     |
; |			FALSE指定条码上没有动____。    |
; +--------------------------------------------------+
_CheckHRange:
			LDY		RefIndex
			LDA		(ADDR2),Y		;判断是否是填充水平方向的坐标。
                   		    	POSTEMPX
			INY
			LDA		(ADDR2),Y
			STA		PAGETEMPX
			LDA		POSTEMPX
			SEC
			SBC		SCREEN_X
			LDA		PAGETEMPX
			SBC		SCRPAGE_X
			BE__	?    kY
			JMP		?OutOfRange
?CheckY:
			INY						;判断垂直方向是否在屏幕内。
			LDA		(ADDR2),Y
			CMP		POSTEMPY
			BNE		?OutOfRange
			INY
			LDA   		(ADDR2),Y
			CMP		PAGETEMPY
			BNE		?OutOfRange
			LDA		#$FF
			JMP		?ChkRangeExit
?OutOfRange:
			LDA		#$00
?ChkRangeExit:
			RTS
;-----------------------------------------------------
; +--------------------------------------------------+
; | Input: SNAP_CONTROL				     |
; | Output:__:      The function success.FALSE fail. |
; +--------------------------------------------------+
_InstallMotion:
			LDX		#$00
			STX		SPR_INDEX
?____ar    ptyLM:
			LDA		MOTION,X
			CMP		#$FF
			BEQ		?FoundEmptyLM
			JMP		?NextLM
?FoundEmptyLM:
			INY
			LDA		(ADDR2),Y
			AND		#$3F
			CMP	____$0    		BCS		?NormalActer
			LDA		MOTION
			CMP		#$FF
			BEQ		?SetupMain
			LDA		#$FF
			JMP		?InstallExit
?SetupMain:
			TYA
			PHA
			LDA		____in    				;设定主角角色号。
			STA		MOTION+0,X
			TAY
			LDA		MainActionCode,Y
			STA		MOTION+1,X
			PLA
			TAY
			INY
			JMP		?SetOtherInfor
____No    Acter:
			LDA		(ADDR2),Y
			AND		#$3F
			STA		MOTION+0,X
			INY
			LDA		(ADDR2),Y
			AND		#$1F
			STA		MOTION+1,X
?SetOtherInfor:
			LDA	S    CONTROL
			STA		MOTION+2,X
			LDA		CODEBUFFER
			STA		MOTION+4,X
			INY
			LDA		(ADDR2),Y
			STA		MOTION+5,X
			;-------------------
			____X	    _INDEX
			LDY		RefIndex
			LDA		(ADDR2),Y
			STA		SPRITE+0,X
			INY
			LDA		(ADDR2),Y
			STA		SPRITE+1,X
			INY
			LDA		(ADDR2),Y
			STA	S    E+2,X
			INY
			LDA		(ADDR2),Y
			STA		SPRITE+3,X
			;-------------------
			LDA		#$FF
			STA		SPRITE+4,X
			STA		SPRITE+5,X
			LDA		#$0__
	    A		SPRITE+6,X
			STA		SPRITE+7,X
			STA		SPRITE+8,X
			STA		SPRITE+9,X
			JMP		?InstallExit
?NextLM:
			LDA		SPR_INDEX
			CLC
			ADC		#$__
			STA		SPR_INDEX
			TXA
			CLC
			ADC		#$06
			TAX
			CMP		#$30
			BCS		?SearchEmptyFail
			JMP		?SearchEmptyLM
?SearchEmptyFail:
			LDA		__00    nstallExit:
			RTS
;-----------------------------------------------------
MainActionCode:
			DB		09H,07H,05H
;=====================================================
SetSubEntry:
			LDY		#$02
?SearchSubEntry:
			LDA		(ADDR0),Y	
			INY
			CMP		#$FF
			BEQ		?SetSubEntryExit
			CMP		SCRP____E_    		BNE		?SearchNext#1
			LDA		(ADDR0),Y
			INY
			CMP		SCRPAGE_Y
			BNE		?SearchNextSub
			LDA		STAGE
			ASL		A
			TAY
			LDA		SCRPAGE_X
		    	StagePageTab,Y
			LDA		SCRPAGE_Y
			STA		StagePageTab+1,Y						
			JMP		?SetSubEntryExit
?SearchNext#1:
			INY
?SearchNextSub:
			CPY		#__2
    BCC		?SearchSubEntry
?SetSubEntryExit:
			RTS
;=====================================================
			INCLUDE	MAIN.INC
;=====================================================
		END
		ADDR2
			INY
			LDA		(ADDR0),Y
			STA		ADDR2+1
			INY
			LDA		(ADDR0),Y
			JSR		SwitchDataBank		;全____部    bank号。
			INY
			LDA		(ADDR0),Y			;全局部件表大小。
			STA		COUNT
			BNE		?11111

At the end of the ROM is this leftover source code. It is corrupt in the same way as Wait and See!, another Dragon game. As a result, extensive restoration has taken place to make it as readable as possible.