the cutting room mirror

The Lion King III: Timon & Pumbaa

This article has a talk page!This article has a talk page!
view on tcrf.net

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.