There was going to be a Picross minigame, as we saw in the Space World '97 demo ROMs. A separate Pokémon Picross game was also planned but canceled. The game's actual code is not available—its files, like piku.h, were completely removed—but should be possible to disassemble in pokegold-spaceworld.
Some unidentified labels in pokecrystal have to do with Picross.
Disasm Name | Original Name | Disasm File | Original File | Details |
---|---|---|---|---|
add_special ClearBGPalettesBufferScreen |
PRG_PlayPicross |
data/special_pointers.asm | EVENT.DMG | |
ClearBGPalettesBufferScreen |
PlayPicross |
engine/events/specials.asm | EVENT.DMG |
This commented code in EVENT.DMG (corresponding to ClearBGPalettesBufferScreen
in engine/events/specials.asm) would have called the Picross game. (The implementation of PikuGame
was completely removed.)
;------------------------------------------------
; ピクロス
;------------------------------------------------
PlayPicross:
call pal_off_put_wait
extern bg_saver
call bg_saver
; extern PikuGame
; BCALL G_BANK38,PikuGame
ret
This debug script in D_EVENT.DMG (after db 0 ; unused
in engine/events/mom_phone.asm) would have tested the minigames including Picross.
ifn 1
TestEvMiniGame:
db MSG_MODE_START
db E_PUSH_WIN
dw MiniGameSelWin
loop$:
db E_MSG
dw sel_msg$
db E_SELECT_WIN
db IF_JUMP,0
dw end$
db E_CALL
dw blanch_sub$
db E_JUMP
dw loop$
end$:
db E_POP_WIN
db MSG_MODE_END
db E_END
blanch_sub$:
db IF_JUMP,1
dw pazzle$
db IF_JUMP,2
dw slot$
db IF_JUMP,3
dw tranp$
db IF_JUMP,4
dw pairgame$
db IF_JUMP,5
dw picross$
db E_END
pazzle$:
db E_ID_PROGRAM
dw PRG_PlayPazzle
db E_END
slot$:
db E_ID_PROGRAM
dw PRG_PlaySlot
db E_END
tranp$:
db E_ID_PROGRAM
dw PRG_PlayTranp
db E_END
pairgame$:
db E_ID_PROGRAM
dw PRG_PlayPairGame
db E_END
picross$:
db E_ID_PROGRAM
dw PRG_PlayPicross
db E_RECOVER_MAP_DATA
db WIN_MODE_START
db E_END
sel_msg$:
extern sel_msg_016_D_event
db I_MSG2
dw sel_msg_016_D_event
db I_MSG2BNK0 ;{mv_msgツール挿入 バンク#}
db EOM ;{mv_msgツール挿入}
MiniGameSelWin:
db WIN_SV_MODE
db 0,0,12,10
dw content$
db 1
content$:
db SEL_MODE
db 5
db n1@,n5@,pa__,zu__,ru__,EOM
db su__,ro__,ttu__,to__,ma__,si__,n__,EOM
db po__,bou@,ka__,bou@,ge__,bou@,mu__,EOM
db pe__,a__,ge__,bou@,mu__,EOM
db pi__,ku__,ro__,su__,EOM
endif
This commented data in EX_MOVE.DMG would have defined parts of the sprite animations for Picross.
The commented missing header file:
; include piku.h
The commented EXActorHeader
data (corresponding to SpriteAnimSeqData
in data/sprite_anims/sequences.asm):
EXActorHeader:
ef_initequ
[snip]
; ef_equ_g PikuGameActNo ;Cursor(Picros)
; db PikuGameAnmNo
; db EXPikuGameNo
; db EXPikuGameOBJNo
; ef_equ_g PikuAttackActNo ;Attack Effect(Picros)
; db PikuAttackAnmNo
; db EXMoveStopNo
; db EXPikuGameOBJNo
; ef_equ_g PIKU_MineActNo ;Mine(Picros)
; db PikuMine1AnmNo
; db EXPikuMineNo
; db OBJ_OPOBJ2No
The commented MoveTable
data (corresponding to SpriteAnimSeqData
in data/sprite_anims/sequences.asm):
MoveTable$:
ef_initndw
ef_ndw_g MoveStop,EXMoveStopNo
[snip]
; ef_ndw PikuGameOBJ,EXPikuGameNo
; ef_ndw PikuMineOBJ,EXPikuMineNo
ifn 0
;-------------------------------;
; Piku Game ;
;-------------------------------;
PikuGameOBJ:
ld hl,PIKU_CONT_STATUS
ld a,(hl)
and BT_U
jr nz,up$
ld a,(hl)
and BT_D
jr nz,down$
ld a,(hl)
and BT_L
jr nz,left$
ld a,(hl)
and BT_R
jr nz,right$
ret
up$:
E_HL EX_ACTOR_Y
ld a,(hl)
cp 40h
ret z
sub 6
jr ret$
down$:
E_HL EX_ACTOR_Y
ld a,(hl)
cp 9ah
ret z
add a,6
jr ret$
left$:
E_HL EX_ACTOR_X
ld a,(hl)
cp 40h
ret z
sub 6
jr ret$
right$:
E_HL EX_ACTOR_X
ld a,(hl)
cp 09ah
ret z
add a,6
jr ret$
ret$:
ld (hl),a
ld a,8
ld (PIKU_CONT_WAIT),a
ld hl,cont_status
ld a,(hl)
and 11111100b
ld (hl),a
ret
PikuMineOBJ:
ld hl,PIKU_ANM_SW
ld a,(hl)
and a
ret z
ld (hl),00h
ld a,PikuMine2AnmNo
call EXAnmSet
ret
endif
The commented EXAnmTable
data (corresponding to SpriteAnimFrameData
in data/sprite_anims/framesets.asm):
EXAnmTable:
ef_initndw
[snip]
; ef_ndw PikuGameAnm,PikuGameAnmNo
; ef_ndw PikuAttackAnm,PikuAttackAnmNo
; ef_ndw PikuMine1Anm,PikuMine1AnmNo
; ef_ndw PikuMine2Anm,PikuMine2AnmNo
ifn 0
PikuGameAnm:
db PikuGamePatNo,08h
db EXANMbanish,08h
db EXANMloop
PikuAttackAnm:
db PikuAttackPat1No,01h
db PikuAttackPat2No,01h
db EXANMdel
PikuMine2Anm:
db OBJPat2No,03h+EXANM_HREV
db OBJPat1No,03h
db OBJPat2No,03h+EXANM_HREV
PikuMine1Anm:
db OBJPat1No,08h
db EXANMstop
endif
The commented EXPatTable
data (corresponding to SpriteAnimOAMData
in data/sprite_anims/oam.asm):
EXPatTable:
ef_initndw
db 0
ef_ndw PatOBJ,OBJPat1No
db 4
ef_ndw PatOBJ,OBJPat2No
[snip]
; db 0
; ef_ndw PatSizePiku,PikuGamePatNo
; db 1
; ef_ndw PatSize1,PikuAttackPat1No
; db 2
; ef_ndw PatOBJ,PikuAttackPat2No
;PatSizePiku:
; db 001h
; db -001h,-001h,0,0
An entry in the dummied-out EX_ChrTable
table (corresponding to BrokenStdGFXPointers
in engine/gfx/sprites.asm) also corresponds to missing Picross graphics.
EX_ChrTable:
ef_initndw
db 80h,G_BANK01
ef_ndw_g dummy,OBJ_OPOBJ1No
db 80h,G_BANK01
ef_ndw_g dummy,OBJ_OPOBJ2No
db 80h,G_BANK01
ef_ndw_g dummy,OBJ_OPOBJ3No
db 80h,G_BANK01
ef_ndw_g dummy,OBJ_TitleNo
db 10h,G_BANK37
ef_ndw_g dummy,EXPikuGameOBJNo
db 10h,G_BANK11
ef_ndw_g dummy,OBJ_ZukanNo
db 10h,G_BANK39
ef_ndw_g dummy,GF_OBJNo
db 10h,G_BANK24
ef_ndw_g dummy,SlotOBJNo
db 10h,G_BANK21
ef_ndw_g dummy,PokerOBJNo
dummy: