the cutting room mirror

Pokémon 4 in 1

Pokémon 4 in 1 is a multicart that contains 4 games, all of which feature Pikachu.

Unused Music#

Picaslot#

The song used for the intro and title screen in most Union Bond RPGs is present in Picaslot's music data. Enable FCEUX cheat 000B:03 before selecting Picaslot on the menu to hear it in-game.

Revisional Differences#

Pet 4 in 1#

An alternate, Pikachu-free version exists simply called Pet 4-in-1. The menu replaces Pikachu with a bear and the graphics for Pet Slot were changed, although any other Pikachu sprites are very lazy edits. The graphics for the Union Bond screen have been deleted.

Pet Slot and Pet Dance were included separately on the Power Joy Supermax 30-in-1, but it's unknown whether the compilation was ever released in full. However, it can be accessed on the 30-in-1 by pressing B on Pet Dance's title screen.

Pet_4-in-1_(Unl)-1.png Pet_4-in-1_(Unl)-2.png

Funclick#

Another hack of Picaclick, although this is separated from the other games. Pikachu is replaced with an edited version of the Haribo kid, but otherwise, it's the same.

Assembler Output#

At 0x39812 in the ROM is a pretty large chunk of assembler output.

  Thu Nov  3 1994 12:59                                                                                                  Page    1

              2500 A.D. 6502 Macro Assembler  -  Version 4.01a
              ------------------------------------------------

                      Input  Filename : MOL00.asm
                      Output Filename : MOL00.obj

   1                       
   2   0000                        INCLUDE MOL.KEY
   3                       
   4                       ;------- Singlekey ----------------
   5          0001         RIGHTKEY                EQU     01H
   6          0002         LEFTKEY                 EQU     02H
   7          0004         DOWNKEY                 EQU     04H
   8          0008         UPKEY                   EQU     08H
   9          0010         STARTKEY                EQU     10H
  10          0020         SELECTKEY               EQU     20H
  11          0080         AKEY                    EQU     80H
  12          0040         BKEY                    EQU     40H
  13                       ;------- Doublekey ----------------
  14          0088         AUPKEY                  EQU     88H
  15          0044         BDOWNKEY                EQU     44H
  16          0030         SELECTSTARTKEY          EQU     30H
  17          00C0         ABKEY                   EQU     C0H
  18          000C         UPDOWNKEY               EQU     0CH
  19          0081         ARIGHTKEY               EQU     81H
  20          0042         BLEFTKEY                EQU     42H
  21                       ;-------------- DEFULT -------------------
  22                       ;_0KEY                   EQU   SELECTKEY
  23                       ;_1KEY                   EQU   STARTKEY
  24                       ;_2KEY                   EQU   AKEY
  25                       ;_3KEY                   EQU   UPKEY
  26                       ;_4KEY                   EQU   BKEY
  27                       ;_5KEY                   EQU   LEFTKEY
  28                       ;_6KEY                   EQU   RIGHTKEY
  29                       ;_7KEY                   EQU   AUPKEY
  30                       ;_8KEY                   EQU   DOWNKEY
  31                       ;_9KEY                   EQU   BDOWNKEY
  32                       ;-------------- YOUR DEFINE ----------------------
  33                       ;_0KEY EQU BKEY
  34                       ;_1KEY EQU UPKEY
  35                       ;_2KEY EQU AKEY
  36                       ;_3KEY EQU LEFTKEY
  37                       ;_4KEY EQU ABKEY
  38                       ;_5KEY EQU RIGHTKEY
  39                       ;_6KEY EQU SELECTKEY
  40                       ;_7KEY EQU DOWNKEY
  41                       ;_8KEY EQU STARTKEY
  42                       ;_9KEY EQU SELECTSTARTKEY
  43                       
  44                       ;_0KEY EQU AKEY
  45                       ;_1KEY EQU DOWNKEY
  46                       ;_2KEY EQU BKEY
  47                       ;_3KEY EQU RIGHTKEY
 Thu Nov  3 1994 12:59                                                                                                  Page    2

  48                       ;_4KEY EQU ABKEY
  49                       ;_5KEY EQU LEFTKEY
  50                       ;_6KEY EQU STARTKEY
  51                       ;_7KEY EQU UPKEY
  52                       ;_8KEY EQU SELECTKEY
  53                       ;_9KEY EQU SELECTSTARTKEY
  54                       
  55          0080         _0KEY EQU AKEY
  56          0004         _1KEY EQU DOWNKEY
  57          0040         _2KEY EQU BKEY
  58          0001         _3KEY EQU RIGHTKEY
  59          0002         _4KEY EQU LEFTKEY
  60          0010         _5KEY EQU STARTKEY
  61          0008         _6KEY EQU UPKEY
  62          0020         _7KEY EQU SELECTKEY
  63                       
  64                       
  65                       
  66                       ;_6KEY EQU BKEY
  67                       ;_1KEY EQU UPKEY
  68                       ;_2KEY EQU AKEY
  69                       ;_3KEY EQU LEFTKEY
  70                       ;_4KEY EQU UPDOWNKEY
  71                       ;_5KEY EQU RIGHTKEY
  72                       ;_0KEY EQU BLEFTKEY
  73                       ;_7KEY EQU DOWNKEY
  74                       ;_8KEY EQU ARIGHTKEY
  75                       ;
  76                       
  77                       
  78   0000                        INCLUDE MOL.VAR
  79                       
  80          0000         NYJSTARTPGTBANK EQU     0
  81                       ;====== ADDRESS MAPS ============================================
  82   0000                        ORG     0000H
  83                               SYMBOLS
  84                       
  85                       ;*********************************************************************
  86                       ;                    .SYMBOLS
  87                       ;*********************************************************************
  88                       ;                    .PAGE0
  89                       ;==================================================================
  90   0000                BANK_NO         DS      1
  91   0001                GAME_NO         DS      1
  92                       ;================================================================
  93                       ;-------------------------------------
  94                       ;------------------------------------
  95                       
  96                       ;*********************   Music and sound *****************************
  97                       ;madr            EQU     4CH     ; 0000H,0001H
  98                       ;madrt           EQU     4EH     ; 0002H,0003H
  99                       ;madr1           EQU     50H     ; 0004H,0005H
 100                       
 101                       ;tmp_lo          EQU     52H
 102                       ;tmp_hi          EQU     53H
 103                       ;bgm_flg         EQU     54H
 104                       ;bgm_no          EQU     55H
 Thu Nov  3 1994 12:59                                                                                                  Page    3

 105                       ;ibgm_flg        EQU     56H
 106                       ;snd1_flg        EQU     57H
 107                       ;snd1_type       EQU     58H
 108                       ;snd2_flg        EQU     59H
 109                       ;snd2_type       EQU     5AH
 110                       ;snd_type        EQU     5BH
 111                       ;jmp00_no        EQU     5CH
 112                       ;*********************
 113                       ;*********************
 114                       ;        ORG     005DH
 115                       ;;;WaitingBuffer:UseInAllSub;;;
 116          00E0         NMI_addr0       EQU     E0H ;jmp00_no+1 ;DS 2
 117                       ;addr0           EQU     E2H     ;DS 2
 118          00E4         addr1           EQU     E4H     ;DS 2
 119          00E6         addr2           EQU     E6H     ;DS 2
 120          00E8         addr3           EQU     E8H     ;DS 2
 121          00EA         addr4           EQU     EAH     ;DS 2
 122          00EC         addr            EQU     ECH     ;DS 2
 123                       ;-------------------------------------
 124          00EE         temp_lo         EQU     EEH     ;DS 1
 125          00EF         temp_hi         EQU     EFH     ;DS 1
 126          00F0         addr_lo         EQU     F0H     ;DS 1
 127          00F1         addr_hi         EQU     F1H     ;DS 1
 128                       
 129          00F2         Xaddr           EQU     F2H     ;DS 1
 130          00F3         Yaddr           EQU     F3H     ;DS 1
 131                       ;================================================================
 132   0100                                ORG     0100H
 133                       
 134   0100                molrecflg       DS      4 ;=$12$34$56$78 HasRecords!DoNotClear!!!
 135   0104                BLOCK_REC       DS 2 ;EQU     molrecbuf+3
 136                       
 137                       ;================================================================
 138                       
 139   0200                                ORG     0200H
 140                       
 141                       ;================================================================
 142                       
 143   0300                                ORG     0300H
 144                       
 145                       ;================================================================
 146   0300                transvramidx    DS      1 ;
 147   0301                transvramflg    DS      1 ;=0:NoTrans =1:DoTrans||Translating
 148   0302                transvrambuf    DS      1+128
 149                       ;+0:d0-d6需传送的数据段数(小于等于16段)
 150                       ;+1:d0-d6:数据长度 d7=0:横向传送;d7=1:纵向传送)
 151                       ;+2+3:需传送的数据首地址(PPUaddr)+2:Hi +3:Lo
 152                       ;+ ... 数据内容
 153                       ;+ ... +1:d0-d6:数据长度 d7=0:横向传送;d7=1:纵向传送)
 154                       ; ... +2+3:需传送的下一段数据首地址(PPUaddr)
 155                       ;+ ... 下一段数据内容
 156                       ;       Etc.
 157                       ;----------------------------------------------------------------
 158   0383                blk_fall_flg    ds      1
 159                       ;=0:trans scr
 160                       ;=1:trans color area
 161   0384                same_fall_flg   ds      1
 Thu Nov  3 1994 12:59                                                                                                  Page    4

 162                       ;=0:trans scr
 163                       ;=1:trans color area
 164                       ;------- IO PORTS REGISTERS & SYSTEM CONTROLERS -----------------
 165   0385                rg_2000H        DS      1       ;NMI controler(D7)
 166                                                       ;SPRITE mode(D5)
 167                                                       ;TEXT/SPRITE LIB switch(D3-D4)
 168                                                       ;VRAM vertical/horizon(D2)
 169                                                       ;PAGE displaying(D0-D1)
 170   0386                rg_2001H        DS      1       ;SCR_CONTROLER
 171                                                       ;TEXT DISPLAY ENABLE(D3)
 172                                                       ;SPRITE DISPLAY ENABLE(D4)
 173   0387                rg_2002H        DS      1
 174   0388                rg_2003H        DS      1
 175   0389                rg_2004H        DS      1
 176   038A                TVx             DS      1       ;X posi. of backgnd on screen($2005 1st)
 177   038B                TVy             DS      1       ;Y posi. of backgnd on screen($2005 2nd)
 178                       ;-------------------------
 179   038C                leftlimit       DS      1
 180   038D                rightlimit      DS      1
 181   038E                uplimit         DS      1
 182   038F                downlimit       DS      1
 183          0008         LEFTLIMIT       EQU     8
 184          00F8         RIGHTLIMIT      EQU     248
 185          0008         UPLIMIT         EQU     8
 186          00F0         DOWNLIMIT       EQU     240
 187                       ;-------------------------
 188   0390                COUNT           DS      1
 189   0391                BTEMP           DS      1
 190   0392                JSTATUS1        DS      1
 191   0393                JSTATUS2        DS      1
 192   0394                TOGGLE1         DS      1
 193   0395                TOGGLE2         DS      1
 194   0396                LAST_JOY1       DS      1
 195   0397                LAST_JOY2       DS      1
 196   0398                TOGGLE          DS      1 ;TOGGLE=TOGGLE1||TOGGLE2
 197                       
 198   0399                toggle_buf      DS      1
 199                       ;-------------------------
 200   039A                key_buff0       DS      1
 201                       ;=0:Enable'AKEY'
 202   039B                key_buff1       DS      1
 203                       ;=0:Enable'LEFTKEY' & 'RIGHTKEY' &'UPKEY' & 'DOWNKEY'
 204                       ;--+--+--+--+--+--+--+--+--
 205                       ;;******************** Music & sound  *********************************
 206                       ;; The following variables must in this order
 207                       ;chnl                DS        1
 208                       ;tp                  DS        1
 209                       ;tempo               DS        1
 210                       ;keyshf              DS        4         ; Key shift
 211                       ;work                DS        1
 212                       ;workx               DS        1
 213                       ;ovride              DS        1
 214                       ;mvol1               DS        4         ; Master volume for channel 1,2,4 add
 215                       ;var1                DS        4         ; or substract VAR per nmi in ADR mode
 216                       ;tmp1                DS        4         ; mi count for each note
 217                       ;madrl               DS        4         ; Score index during playing
 218                       ;madrh               DS        4
 Thu Nov  3 1994 12:59                                                                                                  Page    5

 219                       ;mod1                DS        4         ; Envelope mode: 1 = A, 2 = D,
 220                       ;env1            DS      4
 221                       ;sld1            DS      4
 222                       ;vol1            DS      4
 223                       ;atk1            DS      4
 224                       ;dcy1            DS      4
 225                       ;sus1            DS      4
 226                       ;rel1            DS      4
 227                       ;vols1           DS      4       ; Sustain volume
 228                       ;ctr1            DS      4       ; Working counter for each ADSR mode
 229                       ;seqcl           DS      4       ; Sequence countro1 for jump command
 230                       ;seqch           DS      4
 231                       ;; The above variables must in this order
 232                       ;bgm_tmp         DS      120     ; BGM temperary buffer for BGM
 233                       ;bgm_sef         DS      1       ; Insert BGM flag, must be initialized 0
 234                       ;tr1             DS      1
 235                       ;tr2             DS      1
 236                       ;-------MUSIC END---------------------------------------------------
 237   039C                game_flg        DS      1
 238                       ;InitFlag
 239   039D                game_over       DS      1
 240                       ;=0:ContinueGame
 241                       ;=1:GameOver(NoBlockConnected)
 242                       ;------------------------
 243   039E                game            DS      1
 244                       ;=0:PKQ Click
 245                       ;=1:PAC
 246                       ;=2:ELS
 247                       ;=3:...
 248                       ;------------------------
 249   039F                area_x          DS      1 ;X0,Y0 of GameArea(16Pixel)
 250   03A0                area_y          DS      1
 251   03A1                area_x_size     DS      1 ;Length&Width of GameArea(16Pixel)
 252   03A2                area_y_size     DS      1
 253                       ;------------------------
 254   03A3                fall_flg        DS      1
 255                       ;=00H:Needn'tFallDown
 256                       ;=XXH:NeedFallDown
 257                       ;------------------------
 258                       ;以下变量用于初始化:
 259   03A4                max_element_num DS      1
 260                       ;初始化中可消除区域允许包含的最大元素个数
 261   03A5                max_aarea_num   DS      1
 262                       ;初始化中可消除区域最大个数
 263                       ;------- ProcSameBlocksVars -----
 264                       ;----- 全局变量 ---------
 265   03A6                same_blk_num    DS      1
 266   03A7                same_blk_no     DS      1
 267   03A8                same_blk_x0     DS      1
 268   03A9                same_blk_x1     DS      1
 269   03AA                same_blk_y0     DS      1
 270   03AB                same_blk_y1     DS      1
 271                       ;----- 显示变量 ---------
 272   03AC                same_blk_roll_now       DS      1
 273                       ;为节约时间,每个主循环只处理一行!
 274                       ;以same_blk_roll_now作INDEX
 275   03AD                same_blk_frm    DS      8
 Thu Nov  3 1994 12:59                                                                                                  Page    6

 276          0002         BLK_ROLL_TIME   EQU     2
 277                       ;ActiveBlockRollSpeed
 278   03B5                same_blk_time   DS      8
 279                       ;------------------------
 280   03BD                top             DS      2 ;top score
 281   03BF                total           DS      2
 282   03C1                point           DS      2
 283                       ;------------------------
 284   03C3                curmovflg       DS      1
 285                       ;=0:NotMoved
 286                       ;>=1:Moved
 287                       ;------------------------
 288   03C4                blk_0_no        DS      8
 289                       ;UsedInInit
 290                       ;------------------------
 291   03CC                blk_no          DS      1 ;=x*y
 292                       ;------------------------
 293   03CD                old_blk_x_no    DS      1
 294   03CE                old_blk_y_no    DS      1
 295                       ;------------------------
 296   03CF                blk_x_no        DS      1
 297   03D0                blk_y_no        DS      1
 298                       ;=FFH:OutOfBlockRange
 299   03D1                blk_x_num       DS      1
 300   03D2                blk_y_num       DS      1
 301   03D3                blk_buff        DS      256
 302                       ;------------------------
 303                       ;D0D1D2D3=0000B Backgnd(or:FalenDownOK!)
 304                       ;D0D1D2D3=0001B-0011B:4SortsBlock
 305                       ;D0D1D2D3=1111B:BlockBeDestroy(ToBeFallDownNow!)
 306                       ;------------------------
 307   04D3                blk_refresh     DS      1
 308                       ;=0:NeedNotRefresh
 309                       ;!=0:NeedRefresh
 310                       ;===============================================
 311                       
 312          0010         FRMBUFLENGTH    EQU     16
 313   04D4                FRAME_BUF       DS      64
 314                       ;       16*4:4SpritesAltogether!
 315                       ;+0:d0d1d2d3d4d5d6:ActionNo
 316                       ;   d7:=0NotInited/=1Inited
 317                       ;   =ffh:NoActionToShow!
 318                       ;+1:FrameNo
 319                       ;+2:FrameKeepTime(V_Blanking)
 320                       ;+3+4:X PosiLo & PosiHi 256个点进位
 321                       ;+5+6:Y PosiLo & PosiHi 256个点进位
 322                       ;VarsBelowOnlyUseBy"ShortRun"And"LongRun"
 323                       ;+7: X-Offset ;d7=0:x++ d7=1:x--
 324                       ;+8: Y-Offset ;d7=0:y++ d7=1:y--
 325                       ;+9: 本分镜持续时间V-Blanking number
 326                       ;       =0:保持本分镜=other:持续时间
 327                       ;+A:(AddIn'FuZhou') WhichSpriteNo?(Of'SPRITE_INDEX')
 328                       ;+B:Last "FRAME_BUF"
 329                       ;-------
 330                       ;run_x           DS      2 ;Virtual"TVx"
 331                       ;run_y           DS      2 ;Virtual"TVy"
 332                       ;-------------------------
 Thu Nov  3 1994 12:59                                                                                                  Page    7

 333   0514                ACTION_BUF0     DS      2
 334   0516                ACTION_BUF1     DS      2
 335                       ;-------------------------
 336   0518                PPU_BANK        DS      6
 337                       ;------- CulculateVars ---------------------------------------------
 338   051E                cul_buffer      ds      10
 339   0528                hex_buffer      ds      4
 340   052C                dec_buffer      ds      10
 341   0536                oper_buf0       ds      4
 342   053A                oper_buf1       ds      4
 343                       ;-------------------------------------------------------------------
 344   053E                minute0         DS      1
 345   053F                second0         DS      1
 346   0540                minisec0        DS      1
 347   0541                minute1         DS      1
 348   0542                second1         DS      1
 349   0543                minisec1        DS      1
 350   0544                _1NMI           DS      1
 351                       ;;-----------------------
 352   0545                x_ofset         ds      1
 353   0546                y_ofset         ds      1
 354                       ;-------------------------
 355   0547                yaboyflg        DS      1 ;=0:Not'Yaboy'Title
 356                        ;=1,3,5,7:Init'Yaboy'Title
 357                        ;=2,4,6,8:Running'Yaboy'Title
 358   0548                yaboyno         DS      1 ;
 359   0549                yaboybuf        DS      1 ;
 360                       ;-------------------------
 361   054A                color_area      DS      64
 362                       ;================================================================
 363                       ;MOVED FROM PAGE 0
 364   058A                x_rg                    DS      2
 365   058C                y_rg                    DS      2
 366   058E                counter                 DS      1
 367   058F                screenflag              DS      1
 368   0590                window                  DS      1
 369   0591                Xposition               DS      1
 370   0592                Yposition               DS      1
 371   0593                asciidata               DS      1
 372   0594                length                  DS      1
 373   0595                Xlength                 DS      1
 374   0596                Ylength                 DS      1
 375   0597                a_rg                    DS      1
 376   0598                x_size                  DS      1
 377   0599                y_size                  DS      1
 378   059A                souce_prog_old7         DS      1
 379   059B                souce_prog_id6          DS      1
 380   059C                souce_prog_id7          DS      1
 381   059D                NOENEMY                 DS      1
 382                                               ;=0:CanDead
 383                                               ;=1:NoEnemy
 384                       ;------------------------------------
 385   059E                souce_data_id   DS 1
 386   059F                dest_data_id    DS 1
 387                       ;-------------------
 388   05A0                x_count         DS 1
 389   05A1                y_count         DS 1
 Thu Nov  3 1994 12:59                                                                                                  Page    8

 390                       
 391   05A2                counter0        DS 1
 392   05A3                counter1        DS 1
 393   05A4                counter2        DS 1
 394   05A5                counter3        DS 1
 395                       ;-------------------
 396   05A6                buffer0         DS 1
 397   05A7                buffer1         DS 1
 398   05A8                buffer2         DS 1
 399   05A9                buffer3         DS 1
 400   05AA                buffer4         DS 1
 401   05AB                buffer5         DS 1
 402   05AC                buffer6         DS 1
 403   05AD                buffer7         DS 1
 404          05A6         buffer:         EQU     buffer0 ;DS 1
 405   05AE                NMIWAITFLG      DS 1
 406   05AF                NMIWAITBUF      DS 1
 407                       
 408   05B0                NMI_a_rg        DS 1
 409   05B1                NMI_length      DS 1
 410   05B2                x_posi          DS 2
 411   05B4                y_posi          DS 2
 412   05B6                A_buffer        DS 1
 413   05B7                X_buffer        DS 1
 414   05B8                Y_buffer        DS 1
 415   05B9                x_old           DS 1
 416   05BA                y_old           DS 1
 417   05BB                x_buff          DS 1
 418   05BC                y_buff          DS 1
 419                       ;---------------
 420   05BD                NMI_BUF         DS 1
 421                       ;---------------
 422   05BE                sound_no        ds 1 ;donotchange!!!
 423                       ;---------------
 424   05BF                SPRFRS_FLG      DS 1
 425                       ;=SPRITEFRASH_E:EnableSpriteDMA
 426                       ;=SPRITEFRASH_F:ForbidSpriteDMA
 427          0088         SPRITEFRASH_E   EQU     88H
 428          00EE         SPRITEFRASH_F   EQU