Wait and See!
Wait and See! |
---|
Developer: Dragon This game has uncompiled source code. |
Wait and See! is an unlicensed NES game based on the Russian cartoon Ну, погоди! (Nu, pogodi! - literally Well, Just You Wait!, closer to You dare!), but with Bugs Bunny and Wile E. Coyote instead of the protagonizing wolf and rabbit. This was seemingly a move done to use more recognizable characters.
Development Text
Text probably left by TomSoft Studio, the program used to develop this game.
TomSoft Studio. E-mail:tomsoft@ihw.co.cn. Tel:(029)7223482
tomsoft-1997
Source Code
...But does it make sense? The translations on this page need to be proofread. If you are fluent enough in this language, please make any corrections necessary! |
The whole bank $1D is filled with a fragment of the game engine's source code. Unfortunately, the code is partially damaged by the regular data pattern FF FF ?? ?? 00 00 00 00, some parts of the source code have been restored, but some are still missing. Note, that hard tabs were changed to 4 spaces as was originally intended in the line drawing below.
Original | Translation |
---|---|
___ 08 ;下坡 BNE ?NoIceLand LDA SPRITE CLC ADC #$02 STA SPRITE LDA SPRITE+1 ADC #$0 STA SPRITE+1 ; LDA SPRITE+7 ; AND #$7F ; STA SPRITE+7 ?NoIceLand: RTS ;----------------------------------------------------- Just__e: LDA MOTION+4 AND #$04 BEQ ?NextBG0 LDA #$04 JMP ?JustEnd ?NextBG0: LDA MOTION+4 AND #$08 BEQ ?JustEnd LDA ___8 ?JustEnd: RTS ;----------------------------------------------------- ProceStage3: LDA SCRPAGE_X BEQ ?InBlackScreen CMP #__ BEQ ?InBlackScreen CMP #29 BEQ ?InBlackScreen CMP #38 BNE ?NoInStar ?InBlackScreen: LDA #$0 SEC SBC SPRITE CMP #48 BCS ?NoRightEnd LDA PORT2001 AND #$E7 STA PORT2001 ;关显示屏 LDA MOTION+5 ORA #$60 ;主角置死亡标志,__时____亡动性结束 STA MOTION+5 LDA NUMBER_LIFE CLC ADC #$01 STA NUMBER_LIFE ;消除假死亡的生命减少 LDA SCRPAGE_X CLC ADC #$02 STA Countinue_X LDA #$FF STA CLOSE_FLAG ;表示不是真正的死亡 ?NoRightEnd: LDA #$FF JMP ?ProceEnd ?NoInSt__: LDA MOTION+4 AND #$10 BEQ ?NoInRail LDA MOTION AND #$3F BNE ?NoInRail LDA #$FF JMP ?ProceEnd ?NoInRail: LDA __0 ?ProceEnd: RTS ;----------------------------------------------------- PassStage: LDX STAGE CPX #$FF BEQ ?OverStage L__ ____eData,X CMP SCRPAGE_X BNE ?NoOverStage LDA SCREEN_X SEC SBC SPRITE CMP #40 BCS ?NoOverStage LDA #$FF STA _LOSE_FLAG ;保持原有的心和生命的数值 ?OverStage: LDA STAGE CLC ADC #$01 STA H_BUFFER+1 ;保存关的数目 LDA #$2C STA BG_PAL01 LDA #$0C STA BG_PAL01+1 LDA #$0F STA BG_PAL01+2 LDA #$17 STA BG_PAL02 LDA #$07 STA BG_PAL02+1 ___ #$0F STA BG_PAL02+2 LDA #$FF JMP ?StageEnd ?NoOverStage: LDA #$00 ?StageEnd: RTS StageData: DB 33,34,36,39__,3__ ;----------------------------------------------------- ProceTitle: LDA #$7 STA STAGE LDA #$17 STA BG_PAL01 LDA #$28 STA BG_PAL01+1 LDA #$0F STA BG_PAL01+2 LDA #$17 STA BG_PAL02 LDA #$27 STA BG_PAL02+1 LDA #$0F STA BG_PAL02__ LDA #15 STA MOTION LDA #$0 STA MOTION+1 LDA #108 STA SPRITE LDA #$0 STA SPRITE+1 LDA #79 STA SPRITE+_ LDA #$0 STA SPRITE+3 STA SPRITE+7 LDA #15 STA MOTION+6 LDA #$01 STA MOTION+7 LDA #120 STA SPRITE+1__ LDA #$0 STA SPRITE+11 LDA #79 STA SPRITE+12 LDA #$0 STA SPRITE+13 STA SPRITE+17 LDA #53 STA MOTION+12 LDA #$0 STA MOTION+13 LDA #128 STA SPRITE+20 LDA #0 STA SPRITE+21 LDA #200 STA SPRITE+22 LDA #0 STA SPRITE+__ STA SPRITE+27 RTS ;----------------------------------------------------- Game_Over: LDA #$09 STA STAGE LDA #$27 STA BG_PAL01 LDA #$27 STA BG_PAL01+1 LDA #$37 STA BG_PAL01+2 LDA #$3F STA BG_PAL02 LDA #$2D STA BG_PAL02+1 LDA #$00 STA BG_PAL02+2 LDA #51 ORA #$80 ;最后1个分镜不归0 STA MOTION LDA #$0 STA MOTION+1 LDA #130 STA SPRITE LDA #$0 STA SPRITE+1 LDA #200 STA SPRITE+2 LDA #$0 STA SPRITE+3 STA SPRITE+7 RTS ;----------------------------------------------------- ProcePassStage: LDA #52 STA MOTION LDA H_BUFFER+1 CLC ADC #$05 STA MOTION+1 LDA #20 STA SPRITE LDA #$0 STA SPRITE+1 LDA #160 STA SPRITE+2 LDA #$0 STA SPRITE+3 STA SPRITE+7 ;过关牌的起始坐盻_ LDA #$0 STA MOTION+6 LDA #$01 STA MOTION+7 LDA #8 STA SPRITE+10 LDA #$0 STA SPRITE+11 LDA #160 STA SPRITE+12 LDA #0 STA SPRITE+13 RTS ;----------------------------------------------------- GameOverAction: LDA MOTION+6 CMP __06__ BNE ?Countinue LDA MOTION+7 BNE ?Countinue JMP ?NoEndFrame ?Countinue: LDA MOTION+5 AND #$40 BEQ ?NoEndFrame ___ MOTION+6 CMP #$06 BEQ ?NoFirst LDA #$06 STA MOTION+6 LDA #$1 STA MOTION+7 STA MOTION+8 STA MOTION+9 STA MOTION+10 STA MOTION+11 LDA #8 STA SPRITE+10 LDA #$0 STA SPRITE+11 LDA #200 STA SPRITE+12 LDA #$0 STA SPRITE+13 STA SPRITE+17 ?NoFirst: LDA SPRITE+10 CMP #130 BCC ?NoEndFrame LDA #$0 STA MOTION+7 STA MOTION+8 STA MOTION+9 ___ _________ ORG C000H _MainGetAction DS 3 _MainGetFrame DS 3 _ChangeNumber DS 3 _InstallKey DS _ ____5H ;DS 2 NMI_FLAG EQU 0027H ;DS 1 ;====================================================== ADDR5 EQU 0028H ;____ ADDR6 EQU 002AH ;DS 2 ADDR7 EQU 002CH ;DS 2 JUMPCOUNT EQU 002EH ;DS 1 存放跳跃次数 ACTION_B__K EQU 002FH ;DS 1 Y_VERTICA EQU 0030H ;DS 1 存放主角自由落体偏移量 WINDOWBUFFER EQU 0031H ;DS 192 存放主角代码的PNT缓冲区 ;以下单__用____乐的0页变量 ;====================================================== ;从$0200-$02C3,这一段用于CORE.INC ORG 02C3H DS ;--------------------- MOTION ------------------------ ;MOTION: ; Byte1: +---+---+---+---++---+---+---+---+FF即表明该动作为空。 ; | | \-----------v----------/ ; | | +----------->角色号。(0..62) ; | +-------------------------->X 向翻转。 ; +------------------------------>初始化旗标。0:该动性未做初始化。 ; 1:该动性初始化完成。 ; Byte2: +---+---+---+---++---+---+---+---+ ; | | | \---------v--------/ ; | | | +--------->动性编号。 ; | | +---------------------->循环使能。0:不允许循环。 ; | | 本动性完成后自动回到预备式。 ; | | 1:允许循环。重复本动性。 ; | | 对于主角,若该位使能且新动性 ; | | 与旧动性相同,忽略这种变化。 ; | +-------------------------->碰撞使能。0:不允许碰撞。 ; | 1:允许碰撞。 ; +------------------------------>按键使能。0:不允许接受按键。(仅用于主角) ; 1:允许接受按键。 ; Byte3: +---+---+---+---++---+---+---+---+ ; \--v--/ \-----------v----------/ ; | +----------->分镜计数器,即第几张分镜。 ; +---------------------------->敌物类型: ; 00:一般对象。 ; 01:局部对象。 ; 10:全局对象。 ; 11:未定义。 ; Byte4: +---+---+---+---++---+---+---+---+分____延时计数器。V_BLANK ; \------v------/ \------v------/ ; | | ; | +------->延时计数值。 ; +------------------------>应____长度。 ; Byte5: +---+---+---+---++---+---+---+---+ActerID,角色id. ; Byte6: +---+---+---+---++---+---+---+---+部件控制字。初始化用, ; | | | \--------v---------/ ; | | | | ; | | | +----------->控制字补充说明。 ; | | +----------------------->控__字____ ; | | 1: 位移移动控制字有效。 ; | | 其动画移动位移由控 ; | | 制字补充说明决定。 ; | | 胀ㄐ钥刂谱郑__灾视? ; | | 控制字扩充说明决定。 ; | +--------------------------->初始化方向控制字。 ; | 0: __动____原方向初始化。 ; | 1: 根据主角位置初始化。 ; +------------------------------->未用,系统保留。 ; 注:对特定的动性,其解释__式____户自定义。该解释用于GetNextSnap。 MOTION DS 48 ;======================================================= ORG 0300H ;用于確_乓____谋淞? ;======================================================= ORG 03CEH LocalObject DS 16 ;局部敌物表,每项一位,共128项/关。 ;定__该____在本关是 |
___ 08 ;down slope BNE ?NoIceLand LDA SPRITE CLC ADC #$02 STA SPRITE LDA SPRITE+1 ADC #$0 STA SPRITE+1 ; LDA SPRITE+7 ; AND #$7F ; STA SPRITE+7 ?NoIceLand: RTS ;----------------------------------------------------- Just__e: LDA MOTION+4 AND #$04 BEQ ?NextBG0 LDA #$04 JMP ?JustEnd ?NextBG0: LDA MOTION+4 AND #$08 BEQ ?JustEnd LDA ___8 ?JustEnd: RTS ;----------------------------------------------------- ProceStage3: LDA SCRPAGE_X BEQ ?InBlackScreen CMP #__ BEQ ?InBlackScreen CMP #29 BEQ ?InBlackScreen CMP #38 BNE ?NoInStar ?InBlackScreen: LDA #$0 SEC SBC SPRITE CMP #48 BCS ?NoRightEnd LDA PORT2001 AND #$E7 STA PORT2001 ;turn off the display LDA MOTION+5 ORA #$60 ;set MC's death flag, death[?] motion ends when [???] STA MOTION+5 LDA NUMBER_LIFE CLC ADC #$01 STA NUMBER_LIFE ;revert life decrease caused by the fake death LDA SCRPAGE_X CLC ADC #$02 STA Countinue_X LDA #$FF STA CLOSE_FLAG ;mark this as a fake death ?NoRightEnd: LDA #$FF JMP ?ProceEnd ?NoInSt__: LDA MOTION+4 AND #$10 BEQ ?NoInRail LDA MOTION AND #$3F BNE ?NoInRail LDA #$FF JMP ?ProceEnd ?NoInRail: LDA __0 ?ProceEnd: RTS ;----------------------------------------------------- PassStage: LDX STAGE CPX #$FF BEQ ?OverStage L__ ____eData,X CMP SCRPAGE_X BNE ?NoOverStage LDA SCREEN_X SEC SBC SPRITE CMP #40 BCS ?NoOverStage LDA #$FF STA _LOSE_FLAG ;keep the original amount of hearts and lives ?OverStage: LDA STAGE CLC ADC #$01 STA H_BUFFER+1 ;save level number LDA #$2C STA BG_PAL01 LDA #$0C STA BG_PAL01+1 LDA #$0F STA BG_PAL01+2 LDA #$17 STA BG_PAL02 LDA #$07 STA BG_PAL02+1 ___ #$0F STA BG_PAL02+2 LDA #$FF JMP ?StageEnd ?NoOverStage: LDA #$00 ?StageEnd: RTS StageData: DB 33,34,36,39__,3__ ;----------------------------------------------------- ProceTitle: LDA #$7 STA STAGE LDA #$17 STA BG_PAL01 LDA #$28 STA BG_PAL01+1 LDA #$0F STA BG_PAL01+2 LDA #$17 STA BG_PAL02 LDA #$27 STA BG_PAL02+1 LDA #$0F STA BG_PAL02__ LDA #15 STA MOTION LDA #$0 STA MOTION+1 LDA #108 STA SPRITE LDA #$0 STA SPRITE+1 LDA #79 STA SPRITE+_ LDA #$0 STA SPRITE+3 STA SPRITE+7 LDA #15 STA MOTION+6 LDA #$01 STA MOTION+7 LDA #120 STA SPRITE+1__ LDA #$0 STA SPRITE+11 LDA #79 STA SPRITE+12 LDA #$0 STA SPRITE+13 STA SPRITE+17 LDA #53 STA MOTION+12 LDA #$0 STA MOTION+13 LDA #128 STA SPRITE+20 LDA #0 STA SPRITE+21 LDA #200 STA SPRITE+22 LDA #0 STA SPRITE+__ STA SPRITE+27 RTS ;----------------------------------------------------- Game_Over: LDA #$09 STA STAGE LDA #$27 STA BG_PAL01 LDA #$27 STA BG_PAL01+1 LDA #$37 STA BG_PAL01+2 LDA #$3F STA BG_PAL02 LDA #$2D STA BG_PAL02+1 LDA #$00 STA BG_PAL02+2 LDA #51 ORA #$80 ;don't zero at[?] the last frame STA MOTION LDA #$0 STA MOTION+1 LDA #130 STA SPRITE LDA #$0 STA SPRITE+1 LDA #200 STA SPRITE+2 LDA #$0 STA SPRITE+3 STA SPRITE+7 RTS ;----------------------------------------------------- ProcePassStage: LDA #52 STA MOTION LDA H_BUFFER+1 CLC ADC #$05 STA MOTION+1 LDA #20 STA SPRITE LDA #$0 STA SPRITE+1 LDA #160 STA SPRITE+2 LDA #$0 STA SPRITE+3 STA SPRITE+7 ;initial position[?] of the signpost LDA #$0 STA MOTION+6 LDA #$01 STA MOTION+7 LDA #8 STA SPRITE+10 LDA #$0 STA SPRITE+11 LDA #160 STA SPRITE+12 LDA #0 STA SPRITE+13 RTS ;----------------------------------------------------- GameOverAction: LDA MOTION+6 CMP __06__ BNE ?Countinue LDA MOTION+7 BNE ?Countinue JMP ?NoEndFrame ?Countinue: LDA MOTION+5 AND #$40 BEQ ?NoEndFrame ___ MOTION+6 CMP #$06 BEQ ?NoFirst LDA #$06 STA MOTION+6 LDA #$1 STA MOTION+7 STA MOTION+8 STA MOTION+9 STA MOTION+10 STA MOTION+11 LDA #8 STA SPRITE+10 LDA #$0 STA SPRITE+11 LDA #200 STA SPRITE+12 LDA #$0 STA SPRITE+13 STA SPRITE+17 ?NoFirst: LDA SPRITE+10 CMP #130 BCC ?NoEndFrame LDA #$0 STA MOTION+7 STA MOTION+8 STA MOTION+9 ___ _________ ORG C000H _MainGetAction DS 3 _MainGetFrame DS 3 _ChangeNumber DS 3 _InstallKey DS _ ____5H ;DS 2 NMI_FLAG EQU 0027H ;DS 1 ;====================================================== ADDR5 EQU 0028H ;____ ADDR6 EQU 002AH ;DS 2 ADDR7 EQU 002CH ;DS 2 JUMPCOUNT EQU 002EH ;DS 1 stores the amount of jumps ACTION_B__K EQU 002FH ;DS 1 Y_VERTICA EQU 0030H ;DS 1 stores MC's freefall offset WINDOWBUFFER EQU 0031H ;DS 192 stores the PNT buffer for MC's code ;The following unit is for [??]'s variable page 0 [???] ;====================================================== ;This part from $0200-$02C3 is for CORE.INC ORG 02C3H DS ;--------------------- MOTION ------------------------ ;MOTION: ; Byte1: +---+---+---+---++---+---+---+---+FF means that this action is empty. ; | | \-----------v----------/ ; | | +----------->Actor ID. (0..62) ; | +-------------------------->X-axis flip flag. ; +------------------------------>Init flag. 0: This motion is uninitialized. ; 1: This motion was initialized. ; Byte2: +---+---+---+---++---+---+---+---+ ; | | | \---------v--------/ ; | | | +--------->Motion ID. ; | | +---------------------->Loop toggle. 0: Disallows looping. ; | | After this motion is completed, the initial motion is restored. ; | | 1: Allows looping. This motion will be repeated. ; | | For MC, if this flag is enabled [?] and the new motion ; | | is the same as the old one, the change is ignored. ; | +-------------------------->Collision toggle. 0: Disallows collision. ; | 1: Allows collision. ; +------------------------------>Input toggle. 0: Disallows input handling. (for the MC only) ; 1: Allows input handling. ; Byte3: +---+---+---+---++---+---+---+---+ ; \--v--/ \-----------v----------/ ; | +----------->Frame counter, i.e. the current frame. ; +---------------------------->Enemy type: ; 00: Normal object. ; 01: Local object. ; 10: Global object. ; 11: Undefined. ; Byte4: +---+---+---+---++---+---+---+---+Frame[???] delay counter. V_BLANK ; \------v------/ \------v------/ ; | | ; | +------->Delay counter. ; +------------------------>Length of [???]. ; Byte5: +---+---+---+---++---+---+---+---+ActerID, actor ID. ; Byte6: +---+---+---+---++---+---+---+---+Component control byte. for initialization, ; | | | \--------v---------/ ; | | | | ; | | | +----------->Extra information for control bytes. ; | | +----------------------->[???] control byte. ; | | 1: Displacing[???] movement control byte is valid. ; | | The amount of displacing in the animation [???] ; | | is decided by the extra information control byte. ; | | [garbled] ; | | by the extra information control byte. ; | +--------------------------->Initial direction control byte. ; | 0: Initialized according to the original direction of the [???]. ; | 1: Initialized according to MC's position. ; +------------------------------->Unused, reversed for the system. ; Note: For specific motions, the explanation of [???] is user-defined[?]. ; The explanation here is relevant to GetNextSnap. MOTION DS 48 ;======================================================= ORG 0300H ;For [garbled] ;======================================================= ORG 03CEH LocalObject DS 16 ;Local enemy table, one bit for every entry, 128 entries total for every level. ;Defines whether this [???] is [cut off] in this level |
Cleanup > Articles needing proofread > Articles needing proofread/zh-cn
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with uncompiled source code
Games > Games by developer > Games developed by Dragon
Games > Games by platform
Games > Games by publisher > Games published by Dragon
Games > Games by release date > Games released in 1997
Games > Unlicensed games > Unlicensed NES games
The Cutting Room Floor > Unimportant Awards > NES games