We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

15-in-1 (KS-122)

From The Cutting Room Floor
Revision as of 23:18, 27 March 2020 by AttackedbyGlitch (talk | contribs) (add source code)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Title Screen

15-in-1

Developer: Kaiser Electronics
Publisher: Kaiser Electronics
Platform: Unlicensed NES


SourceIcon.png This game has uncompiled source code.
GraphicsIcon.png This game has unused graphics.
TextIcon.png This game has unused text.


15-in-1 is yet another unlicensed NES multi-cart from Taiwan.

Unused Graphics

15-in-1 (KS-122)-bigstars.png

Unused bigger versions of the stars used for the menu border.

Unused Text

Bizarrely, two of the text strings on the internal game list were seemingly replaced at the last minute. Pinball erroneously added a space in the title, while Sky Destroyer replaced Ma Chiang. The unused strings can be found with the rest of the used menu text starting at 0x24FA in the ROM, while the replacement strings can be found starting at 0x3001.

Source Code

Beginning at 0x3010 is a heavily corrupted chunk of the menu's source code. A comment near the beginning dates this code to May 7, 1987.

 2.PIN BALÌ*****¤P¹(ðÈÀ��  „P`$„R`*****��

��$* Qä �©�…�¥�� Æ�¥�É�°�©�…�ˆÐìæ�`*
 $*         GAIN SELECT            *
 $*       9.SKY DESTROYEÒ          *
 $*      1987.5.7 BY L.J.L         *
 $**********************************
 �;
 	Ú $FFFA
Ú	Û $17FA
Û�;
 �Ø NMI1
 
Ø RESET1
 
Ø RESET1
 �;
 	Ú $E000
Ú�Û $800
 �;
 $**********************************
 �;
 �TIME    Ù 05
 �TIME1   Ù 01
 �TIME2   Ù 02
 
TIME3   Ù 5
 �TIME4   Ù 30
 �FLHTIM  Ù 30
 �BLOCKNO Ù 22
 �BLOCKNO1Ù 18
 �GAMENO  Ù 15
 �BLOCKSTRÙ 04
 �BLOCKST1Ù 04
 �PRNSTR  Ù BLOCKSTR+1
 �PRNSTR1 Ù BLOCKST1+2
 �TITLROW Ù 25
 �TITCLM  Ù 09
 �TITLROW1Ù 27
 �JPRES   Ù $FFFC»2BYTE
 �HV      Ù $9000
 �TITCLM1 Ù 06
 �;
 $**********************************
 �;
 �COUNT   Ü $00
 �ROW     Ü $01
 �COLUMN  Ü $02
 �POIN¥�)�ð�`­� ©?� ©�� ¥UÉ��L„ó¥U)�Ð�æT¤TÀ��  „TL<óÆT¤T�� �„T¢�¹` � ÈÊ�öÆS��©�…S Tó`¥R �™` ™c �i"ˆ�ôæR¥R)�É
��¥Ri�…RæV¥VÉ��© …VæU`êÆX�ú©�…X­� ©?� ©�� ¥YÉ�°*¥Y)�Ð�©�� � � æY`¥bH�i�H)�É
h�i�…bhL¨ó �© ™X ˆ�ú…U`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ � ©2…R`LKCONT Ü $15
 �STRCNT  Ü $16
 �BKGRNCT Ü $17
 �ROCONT  Ü $18
 �ROADR   Ü $19»2BYT
 �;
 $**********************************
 �;
 �BANKBUF Ù $C000
 �;
 $**********************************
 �;
 �RESET1  �RESET
 �NMI1    �NMI
 �;
 $**********************************
 �;
 �;
 
RESET   :
�ª 
 �š 
�;
 ��#$10
 	�$2000
�^1      �$2002
 �…�<1
 �;
 ��#$FF
 �° 
 �;
 ��#$00
 ��#$00
 �^2      �$00,Y
 
�$200,Y
��Ÿ 
 �†�<2
 �;
 ��#$00
 �^0      �SELCONT
 �Ò�BANKBUF
B�;
 ��#$5C
 ��#$17
 ��#$10
 	�COUNT
�;
 �^1      �STRTTAB,X
 
�$2A3,Y
���#$10
 
�$2A1,Y
�
�STRTTAB,X
R�Á�#$03
 ��#$E0
 
�$2A2,Y
�	�COUNT
Í
�$2A0,Y
��™ 
 �À�#$09
 	�COUNT
Ð� 
 � 
 � 
 � 
 �œ 
 �…�<1
 �;
 	�#TIME
Í	Ð�COUNT
Ð
�#TIME2
���MOVCONT
M��#FLHTIM
#��FLHCONT
F��#$0C
 
�STRCNT
��;
 ��#$00
 	�$2001
Ð	Í�$2002
�;
 ��#$2B
 	�$2006
��#$C0
 	�$2006
�;
 ��#$00
 �^6      �BLKCLRTB,Y
 ��#$FF
 �‡�>4
 �Ÿ 
 ��BLKCLRTB,Y
C�^5      �$2007
 �œ 
 �†�<5
 �;
 �Ÿ 
 �†�<6
 �;
 �^4      �SETCOLOR
 �;
 �;
 	�$2002
��#$20
 	�$2006
��#$00
 	�$2006
�;
 ��#$03
 ��#$C0
 ��#$1F
 �^1      �$2007
 � 
 �†�<1
 �œ 
 �…�<1
 �;
 	�$2002
��#$28
 	�$2006
��#$00
 	�$2006
�; 
 ��#$03
 ��#$C0
 ��#$1F
�^1      �$2007
 � 
 �†�<1
 �œ 
 �…�<1
 �;
 	�$2002
��#$00
 	�$2005
Ð	Ð�$2005
�;
 ��#$0F
 	�$4015
��#$0F
 	�$4000
��#$00
 	�$4001
��#$1E
 	�$2001
��#$88
 	�$2000
��#02
 ��$74
 ��$77
 ��$76
 �;
 �LOOP    �LOOP
 �;
 
NMI     :
��#$00
 	�$2001
�;
 ��#$02
 	�$4014
Ð	Ë�$C0D6
�;
 ��BKGRNCT
B�Á�#$01
 �†�>1
 ��MOVSTRT
M��>2
 �;
 �^1      �ROCLR
 �;
 �^2      �BKGRNCT
 	�POINT
Í�× 
 �¬ 
 ��ADRTAB+1,X
T�¡ 
 ��ADRTAB,X
D�¡ 
 �¥ 
 �;
 
ADRTAB  :
�Ø CHANGCLR-1
N�Ø PRNTITLE-1
T�Ø PRENTCHK-1
N�Ø SELECT-1
E�;
 
CHANGCLR:
	�COUNT
Ç�†�>4
 	�#TIME
Í	Ð�COUNT
�;
 ��BLKCONT
B�†�>1
 
�PBKSTR
���>3
 �;
 �^1      �#BLOCKNO1+1
 �„�>2
 
�PRNMID
���>3
 �;
 �^2      �PRNTIAL
 �^3      �BLKCONT
 ��BLKCONT
B��#BLOCKNO1+2
C�ƒ�>4
 	�POINT
��#$00
 ��BLKCONT
B�;
 �^4      �NMIOUT
 �;
 
PRNTITLE:
��BLKCONT
B��#$0A
 �ƒ�>2
 ��#$0B
 �„�>1
 �;
 ��#TITLROW
T��ROW
 ��#TITCLM
#
�COLUMN
�
�/TITLETB1
I
�#TITLETB1
I��PRNROW1
P�^2      �BLKCONT
 
�NMIOUT
��;
 �^1      �#$14
 �ƒ�<2
 
�#TITLROW1
I��ROW
 ��#TITCLM1
T
�COLUMN
�
�/TITLETB2
I
�#TITLETB2
I�;
 ��PRNROW1
P�;
 	�POINT
É
�NMIOUT
��;
 
PRENTCHK:
��PRINTMK
P	†�PRINT
†�Í�PRNTCONT
R�­ 
 �× 
 �¬ 
 �;
 ��MSGTAB+1,X
T
�PRNTADR+1
N��MSGTAB,X
S��PRNTADR
P�;
 ��ROW
 �± 
 �†�>1
 ��#PRNSTR
#��ROW
 �^1      �#PRNSTR1
 
�COLUMN
���#$00
 	�INDEX
Ð
�#TIME1
�	�COUNT
��PRINTMK
P��PRNTCONT
R
�NMIOUT
��;
 
PRINT   :
	�COUNT
Ç
†�PNTERR
�
�#TIME1
�	�COUNT
�;
 �;
 
�SETADR
�	�INDEX
��(PRNTADR),Y
T�…�>0
 �;
 ��PRINTMK
P��PRNTCONT
R��#GAMENO
#�ƒ�>1
 	�POINT
�;
 �^0      ¡ 
 ��INCROCN
I�¢ 
 �^1      �INDEX
 �Á�#$7F
 	�$2007
�;
 �PNTERR  �NMIOUT
 �;
 
SELECT  :
��SELECTMK
E�†�SELECT1
S�;
 ��SELECTMK
E
�#TIME3
���KEYCONT
K�;
 ��#$03
 �^1      �CRSTAB,Y
 
�$200,Y
�� 
 �†�<1
 ��SELCONT
S�× 
 �× 
 �× 
 �™ 
 
À�CRSTAB�à à à