An unlicensed platformer based on Tom and Jerry.
Sub-Page#
Dragon Software Screen#
FCEUX cheat 02AA?05:0C will replace the game's intro with an unused Dragon Software screen. It's unknown why it was removed from the game.
Uncompiled Source Code#
Starts at 0x7E653 and continues until the end of the ROM.
LDA MOTION,X
AND #$7F
STA MOTION,X
LDA #FFH
STA BGMeetFlag
LDA #<Act0009PosProc4
STA SNAPPOS_PROC
ÿÿ LDA #>Act0009PosProc4
STA SNAPPOS_PROC+1
?EXIT9
RTS
;===========================================
PLAY_MUSIÿÿ
MUSIC_NUM
JSR CONMB_MUSIC_INIT_CHECK
RTS
;===========================================
;===========================================
ÿÿ C000H
_ResetKeyEntry1 DS 3
CheckBGMeet1: DS 3
SET_SPRMEET_F1 DS 3
SET_ACT00_WEAPON DS 3
SET_ACT01_WEAPON DS 3
_ResetKeyEntry DS 3
SETÿÿPR _F DS 3
CheckBGMeet: DS 3 ;8
SET_SCATHE DS 3 ;9
LOST_LIFE DS 3 ;10
DOWN_SCROLL DS 3 ;11
GET_RANDOM1 DS 3 ;12
GET_RANDOM2 Dÿÿ3
CONMB_MUSIC_INIT_CHECK DS 3 ;14
;===========================================
; ORG F300H
; INCLUDE SPRITE.ASM
END
;================ÿÿ== ===================
�--
ACTProc#0013:
LDA #<Act0101InitProc
STA SNAPINIT_PROC
LDA #>Act0101InitPÿÿc
STA SNAPINIT_PROC+1
LDA #<Act0013EndProc
STA SNAPEND_PROC
LDA #>Act0013EndProc
STA SNAPEND_ÿÿOC LDA #<Act0010IncProc
STA SNAPINC_PROC
LDA #>Act0010IncProc
STA SNAPINC_PROC+1
JMP GetNexÿÿna ct0013EndProc
LDA #D5H
STA MOTION+1,X
JSR _ResetKeyEntry
LDA MOTION+2,X
AND #$C0
STA MOTION+2,X
; LDA MOTION+5,X
ÿÿ #$BF
; STA MOTION+5,X
LDA MOTION,X
AND #$7F
STA MOTION,X
JSR GetFrameAddress
JSR SetSnapPos
RTS
;--------ÿÿ-- -------------------------------------
ACTProc#0014:
LDA #<Act0001InitProc
STA SNAPINIT_PROC
LDA ÿÿAc 1InitProc
STA SNAPINIT_PROC+1
LDA #<Act0012EndProc
STA SNAPEND_PROC
LDA #>Act0012EndProc
ÿÿTA APEND_PROC+1
LDA #<Act0012IncProc
STA SNAPINC_PROC
LDA #>Act0012IncProc
STA SNAPINC_PROC+1
ÿÿ J GetNextSnap
;-----------------------------------------------------
ACTProc#0015:
LDA #<Act0101InitProc
STA SNAPINIT_PROC
ÿÿ LDA #>Act0101InitProc
STA SNAPINIT_PROC+1
LDA #<Act0015IncProc
STA SNAPINC_PROC
LDA ÿÿ #>Act0015IncProc
STA SNAPINC_PROC+1
JMP GetNextSnap
Act0015IncProc:
LDA MOTION
AND #40H
BNE ?S1_5
LDA SPRITE
CLC
ADC #5ÿÿ S PRITE_X
LDA SPRITE+1
ADC #0
STA SPRITE_X+1
JMP ?A1_8
?S1_5
LDA SPRITE
SEC
SBC #5
STA SPRITE_X
LDA SPRITE+1
SBC #0
STA SPRÿÿE_
?A1_8
LDA SPRITE+2
CLC
ADC #8
STA SPRITE_Y
LDA SPRITE+3
ADC #0
STA SPRITE_Y+1
LDA SPRITE_Y
CMP #240
BCCÿÿC1 EC
SBC #240
STA SPRITE_Y
INC SPRITE_Y+1
?C1
LDA #$92
JSR CheckBGMeet
JSR SET_SPRMEET_F
LDA BGMeetFlag
AND #10H
ÿÿBN ROC_D
LDA BGMeetFlag
AND #02H
BNE ?PROC_E
JMP ?PROC_F
?PROC_D
LDA #$CB
STA MOTION+1,X
JSR _ResetKeyEntry
LDA MOTION+2,Xÿÿ A $C0
STA MOTION+2,X
; LDA #0
; STA MOTION+5,X
LDA MOTION,X
AND #$7F
STA MOTION,X
LDA #<Act0015PosProc1
STA SNAPPOS_PROC
ÿÿ LDA #>Act0015PosProc1
STA SNAPPOS_PROC+1
JMP ?EXIT0F
?PROC_E
LDA #$C0
STA MOTION+1,X
JSR _ResetKeyEntrÿÿ
A MOTION+2,X
AND #$C0
STA MOTION+2,X
; LDA #0
; STA MOTION+5,X
LDA MOTION,X
AND #$7F
STA MOTION,X
LDA #<Act0015PosProc2
ÿÿTA APPOS_PROC
LDA #>Act0015PosProc2
STA SNAPPOS_PROC+1
JMP ?EXIT0F
?PROC_F
LDA BGMeetFlag
Aÿÿ
BEQ ?PROC_G
LDA BG_CONTROL22
AND #40H
BEQ ?PROC_G
LDA #$D2
STA MOTION+1,X
JSR _ResetKeyEntry
LDA MOTION+2,X
AND #$C0
STÿÿMO +2,X
; LDA #0
; STA MOTION+5,X
LDA MOTION,X
AND #$7F
STA MOTION,X
LDA #<Act0015PosProc2
STA SNAPPOS_PROC
ÿÿ LDA #>Act0015PosProc2
STA SNAPPOS_PROC+1
JMP ?EXIT0F
?PROC_G
LDA #<Act0015PosProc1
STA SNAPPOS_PROC
ÿÿ LDA #>Act0015PosProc1
STA SNAPPOS_PROC+1
?EXIT0F
RTS
Act0015PosProc2
LDA BG_SUPPORT+0
STA SPRITE+2
LDAÿÿBG PORT+1
STA SPRITE+3
Act0015PosProc22
LDA MOTION
AND #40H
BNE ?S1_5
LDA SPRITE
CLC
ADC #5
STA SPRITE
LDA SPRITE+1
ADC #ÿÿ
SPRITE+1
JMP ?A1_8
?S1_5
LDA SPRITE
SEC
SBC #5
STA SPRITE
LDA SPRITE+1
SBC #0
STA SPRITE+1
?A1_8
RTS
Act0015PosProc1
ÿÿA ITE+2
CLC
ADC #8
STA SPRITE+2
LDA SPRITE+3
ADC #0
STA SPRITE+3
JMP Act0015PosProc22
;---------------------------ÿÿ-- ------------------
ACTProc#0016:
ACTProc#0017:
LDA #<Act0000InitProc
STA SNAPINIT_PROC
LDA #>Act0000InitProc
STA SNAPINIT_ÿÿOC LDA #<Act0016IncProc
STA SNAPINC_PROC
LDA #>Act0016IncProc
STA SNAPINC_PROC+1
JMP GetNexÿÿna
Act0016IncProc:
JSR GET_SPRITE_XY
JSR SET_SPRMEET_F
JSR DefaultIncProc
LDA SPRMeetFlag1
BEQ ?EXIT
LDA #$C0
STA MOTIONÿÿ,X SR _ResetKeyEntry
LDA MOTION+2,X
AND #$C0
STA MOTION+2,X
; LDA MOTION+5,X
; AND #$BF
; STA MOTION+5,X
LDA MOTION,X
AND #$7Fÿÿ S OTION,X
?EXIT
RTS
;-----------------------------------------------------
;-----------------------------------------------------
ACTProc#00ÿÿ:
LDA #<Act0001InitProc
STA SNAPINIT_PROC
LDA #>Act0001InitProc
STA SNAPINIT_PROC+1
LDA #<Actÿÿ18 roc
STA SNAPEND_PROC
LDA #>Act0018EndProc
STA SNAPEND_PROC+1
JMP GetNextSnap
Act0018EndPrÿÿ
DA MOTION+2,X
AND #$C0
STA MOTION+2,X
LDA MOTION+5,X
AND #$BF
STA MOTION+5,X
LDA MOTION,X
AND #$7F
STÿÿ M N,X
JSR GetFrameAddress
JSR SetSnapPos
RTS
;-----------------------------------------------------
ACTProc#0019:
LDA #<Act00ÿÿIn oc
STA SNAPINIT_PROC
LDA #>Act0001InitProc
STA SNAPINIT_PROC+1
LDA #<Act0018EndProc
STA ÿÿNA _PROC
LDA #>Act0018EndProc
STA SNAPEND_PROC+1
JMP GetNextSnap
;---------------------------------ÿÿ-- ------------
ACTProc#001A:
LDA #<Act0001InitProc
STA SNAPINIT_PROC
Version Differences#
There are two hacks of this game and respectively called Primitive and Primitive 2. One of a significant difference is for each of the characters - in the hacks series "Primitive" levels for Jerry are taken to the first part of the game (Primitive Man) and levels for Tom - to the second (Primitive Woman) .
(Source: IPS Community)
Title Screen#
- Primitive series:
- Primitive 2 series:
- Russian hack version:
|
Original |
Russian hack |
|---|---|
|
|
|
Characters#
|
Tom & Jerry 3 |
Primitive |
|---|---|
|
|
|
|
Tom & Jerry 3 |
Primitive 2 |
|---|---|
|
|
|
Furthermore, all of the cutscene pictures after each stage have been replaced to a background explanation that tells the player what situation the Primitive facing.
|
Tom & Jerry 3 |
Primitive 2 |
|---|---|
|
|
|