A port of Turok: Dinosaur Hunter in which unlike the other Turok Game Boy Color games remains faithful to its N64 counterpart.
Level Select#
Enter ZYDRTRKLVL as a password, then during gameplay, pause and press A + B. Press Left or Right to choose a level, and A, B, or Start to go to the chosen level.
Free-Movement Mode#
Enter ZYDRTRKBRD as a password, then during gameplay, hold Select and press A. Use the D-Pad to move Turok around and hold Select, then press A again to place him.
Dedication Screen#
Enter CGRZYDLYNY as a password, the "BAD PASSWORD" will be displayed. Hold B + Up + Right and press Start, the dedication to Carol, the same as in some other games of the same developers will appear.
Sound Test#
At the title screen, press Up once, then one more and hold it. The cursor must point to the "START" option. Press Start to access the Sound Test mode instead of the starting new game. Use A / B / Left / Right to change the music/fx numbers, or Up / Down / Select to select menu items. Press Start to play music or exit this menu.
Debug Leftovers#
Memory Watch#
Use the Game Genie code 489-16A-D5F to re-enable the debug Memory Watch function. To use it, enter the Level Select cheat, and press A + B on pause. Then use Up / Down to change the current address, hold A or B additionally to increase address by 0x10 or 0x100 correspondingly.
Frame Advance#
Use the Game Genie codes 009-1CA-80A+009-1DA-D55 (for the US version) to re-enable the frame advance mode instead of the pause mode. Press Start to toggle this mode on or off. When on, press Select to advance the game frame by frame.
Unused Text#
There is a lot of garbage data, which is random data from the memory of the PC where the game is compiled. Different versions of the same game may have different data. This is a very common thing for at least Bit Managers' development tools. Sometimes, inside the garbage you may find development-related text or something more interesting.
In the Japanese version, the first chunk of garbage starts at 0x33E0, but has text sitting at 0x3889. This is portions of the OBJ data files for compilator or debugger with lists of labels. The same area of the US version contains some early version of the level data block from BANK1 of its ROM. Level data is the same, but offsets to chunks are shifted, so it just was placed in a different location previously. The following is a clean list of the labels, extracted from the data structures in this garbage data.
FPOLLO4
MIN_X_HID_RUINAS
CAMPAIGNER_ENERGY
CondorEndStatus
YDOWNENEIN
DURMIN1
HeroAttLoaded
LevelAliveTab
DumpWeapon
BulletDown
TROMPIEZA_LEV
LIMITE_YUPSPRINT
MIN_Y_HID_RUINAS
PersoFlags_HIDDEN
LCDCINT
DURMIN2
ObjHeroX
BlockCNT1
CARACTERISTICA
MAX_X_HID_RUINAS
DURMAX1
DURMIN3
AGUAMIN
ObjHeroY
CommonRexEnergy
ALIENW_BUL
ROCKET_AMM
POSMARK_BONUS
BNK_POSTAB
COLBUFH
DURMAX2
TiempoGenSuelos
BullFusion
BNK_ENEPOS
TXTFLAG_Mark
CENTROYCON
COPY_CARAS
DURMAX3
AGUAMAX
W_GUN2_FUSION
LIM_ABA
ALTURA_COL
CommonCampLIM_DER
TIEMPO_HUGO_HA_CAIDO
HUGO_SALTA
TalkParX
HeroApoY
LIVETAB
HeroTalkedCnt
TalkParY
COMP_VARS_LEN
TITULSBUFF
DURMIN_OBJ
HeroXAnt
GameTime
SaveData
ALIENW_GOT
MINDETECCIONX_BOLAOBJETO
PALSP_MARK
BitBITSCR_Up
LockRama
PuzzleTimeSpeed
WORLD_SPRSBNK
WORLD_PSEUDOS
HeroYAnt
JumpLittle
OBJECTS
Error
RoadCircuitLenEasy
CommonMantisLIM_IZQ
W_PARTICLE
BullPistol
ROCKET_BUL
MINDETECCIONY_BOLAOBJETO
Psize
DiffEasy
PuertoTalk
DURMAX_OBJ
CrisFlag
OffXDown
MAXDETECCIONX_BOLAOBJETO
LIFT_ENTER
SPECIAL_HIDDEN
Cha
LIVE_NoReapear
HeroEsperandoPacha
DECSCRX
VelDecOxigeno
DataSW5A1A
CommonMantisOnFlag
OffYDown
MAXDETECCIONY_BOLAOBJETO
RUT_CHQ_DESPL
MAXSPRSGRF
MAPSPR_BNK
PAL0
AGABLALEMIN
SnowManSpeedY
DataSW5A1B
MAX_BULLET
OffXFrnt
PAL1
FlagDoor
HeroAttReload
DataSW5A1C
FUSION_AMM
OffYFrnt
BNK_VBLEXT
OBJECTS_TABLE_LEN
TROMPIEZA_RUN
MAX_CHR_GG
WIND_RIGHT
MAX_WEAPON
XLEFTSPRIN
RoadCars
AGABLALEMAX
LevelTab
DataSW5A1D
CommonCampCnt
PIEDRAS_LEVEL1
CONDOR_DERECHA
Che
RoadPixY
CodeMap3D
PosXSaco
DataSW6D
The second garbage chunk in the Japanese version is at 0x7B42.
ASHOTGUN_GOT
SnowDummy
BLAMIN
SuperGameBoy
HeroHit
CommonRexOff
FINALPOSX
AguaVRAM
PuzzleFinished
FLAG_SIZE
CommonRexLIM_DER
TIEMPO_VAPOR
BLAMAX
LADMIN
FLG_SIZEB
TalkSeq
MaxAnimacion
TIME_PIEDRAS_MEDIUM
JumpLevelOne
VER_64
MonjeOn
PlatCnt
ENELEN
UPOUTFLAG
VARSINCRO
RoadSpeedTxt
LADMAX
PuzzleLastAuto
V01
SnowBallWait
CommonRexGrf
ScrollSpeedX
MuseoAlbertTalked
AguaAdd1
ProgramCounter
V11
MULDEA
ANCHOP
B_ATTACK_RELEASE
KW_ATTACK
W_GUN1_PULSE
AguaAdd2
DoorCnt
MaxEnergyVar
HeroDoorNextLevel
CounterPMira
FlgGenSaco
GRFBNK
MARC_PIEZ
YETI_DERE
PresentFLG
LIMX_DERF
AguaAdd3
DiffiOnOff
FLAGDOOR_BAJA
HEROAL
AutoTbl
RoadCarLen
HeroCreeping
OBJRAM
LIMITE_XRIGHTENEINT
WIND_LEFT
BIT_RIGHT
ACode
END_HOT_VARS
DMASUB
CHTWeapons
NORMAL_CONDOR_SPEED
FUSIL_AMM
LCDC_WinBnk
MAXENE
BITSCR_Down
AutoCnt
WORLD_TAB
SnowBallJump
DOOR_MASK
HUGO_SEAGACHA
OffsetX
PosXHeadSnowMan
OldRoadFas
TMP0cred
AddGrenade
GrenadeFront
ALTURA_DE_PIE_HEROE
SELECT
OffsetY
The same place in the US version is filled with this garbage:
MURIENDO
VDP_DATA
HIGHC
MAX_SPEEDY_GRENADE
SAVE_CHK
TreatCrouch
HeroInRam
PreviousWorld
CondorPosMP1
DTMP0
DO_SCROLLXL
CampaignerDead
POSMARK_KEY
BNK_MISC
DTMP1
DO_SCROLLYL
HeroAttAn
CAIDA_PIEDRA
BIT_REAP
LevelTab_Level
BullMinigun
BNK_WEAP
PasoAPaso
DTMP2
TabDataPiedros
CONDOR_MURO
FIREA
P_ATTACK
DTMP3
NUM_PIEZAS_WIN
FIREB
STONED_JUMP
SaveHighY
ROW_HEAD
DTMP4
callfarHL
LIMITE_XLEFTENEINT
MAXSLOPE
BIT_LEFT
FXSPLASH
Piedras3Scroll
PuzzleCounter
Energy
CheatMode
DTMP5
MusicNumber
Weapon
DERECHA_PANTALLA_HEROE
WT_Select
SWIM_SPLASH
SHOTGUN_BUL
TalkTemWindSpd
DTMP6
SPRITESA
DO_SCROLLXR
CLIMB_UP
TIME_AGARRED_SWING
H_Message
AguaROM
Inmune
DTMP7
DO_SCROLLYR
LASTDOWN
SnowBallSpeedY
WIDEC
SELWORLD
YUPENEIN
DTMP8
RANDH
PointToTray
TreatAttackTurok
FINAL_PANTALLAX
AgaAdjRightX
SPRS_8X8
ObjHeroLastJoy
NumeroSacos
DelayShoots
STONED_STGU
FXPUERTA
HeroControl
POS_GAP_CONDORPSEUDOS
NUMENE_ORGMOVIBLES
HUGO_MUEREBUCEA
FXMUERTE
Data between 0xADE8 and 0xC000 in the Japanese version is a partial binary bank of the very early version of BANK1 for the other Bit Managers' game Otto's Ottifanten: Baby Bruno's Nightmare. It contains the early version of the "Dedication" cheat, which is only present in the early proto, but all menus are the same as in the final game, except there are no strings for other languages, scenario texts and other evidences of the game name itself. However, text and code for the Language selection menu is present in this data chunk. Offsets in this code matches the actual data offsets in BANK1, but shifted to 0x2000 higher.
The same area of the US version filled mostly with a copy of the BANK3 data and code with just a few additional garbage leftovers.
HeroClimbCnt1
LastHeroXR
RoadCarNum
WIDESP
WORLD_OBJECTSBNK
And finally, the Japanese version has a lot of binary data with sources, it seems the internal structures of the compilator as well.
PSEUDOS
; LDBCL WORLD_LENPSEUDOS
ld bc,MAXLENPSEUDOS ;LALALA
CALLX UNPACK
; LD A,E
; SUB PSEUDOS&BYTE
; STAL WORLD_LENPSEUDOS
; LD A,D
; SBC (PSEUDOS>>8)&BYTE
; STAL WORLD_LENPSEUDOS+1 ;LALALA
;Mete los bloques del mapeado en la pantalla...
LD HL,#9800
LD DE,#9801
SUB A
LD (HL),A
LD BC,#9C00-#9800-1
ZLDIR
ldal Level
cpx W8c1
bne $noloadrex
ld hl,#8800+(NUM_PIEZAS_MARCADOR)*#10
ld de,#8800+(NUM_PIEZAS_MARCADOR)*#10+1
ld bc,#10-1
ld (hl),0
zldir
StBnkLenx REXGRF
ld de,#8800+(NUM_PIEZAS_MARCADOR+1)*#10
call UNPACK
; Clears T-REX buffer
ld hl,#9c00
ld b,32;10
$cline ld c,32
xor a
$cbyte ldhlia
dec c
bne $cbyte
dec b
bne $cline
$noloadrex LDAL WORLD_GRAFICSBNK
SetBank
LD DE,#8800
LDAL PIEZAS_MARCADOR
LD L,A
LD H,0
REPT 4
ADD HL,HL
ENDR
ADD HL,DE
LD E,L
LD D,H
LDHLL WORLD_GRAFICS
LD BC,512 ;Tama¤o por defecto
CALLX UNPACK ;Descomprime los gr ficos...
;*** Entra en DE con por donde se quedo el compresor
PUSH DE
CALL INTERCHANGE ;Intercambia las posiciones de las piezas
;de background
ldal Level
cmp W8c1
bne $nomapREX
StBnkLenx REXMP1
ld de,MAPREX
callx UNPACK
ld hl,MAPREX
ld bc,ce
ret nc
ldal HeroSwim
and a
bne $kwater
ldal HeroCreeping
and a
bne $kcreep
ld de,#10
bra $kt
$kcreep ld de,#18
bra $kt
$kwater ld de,#18
bra $kt
$kt ldal HeroLastJoy
bit RIGHT,a
bne $nn
ld a,e
cpl
ld e,a
ld a,d
cpl
ld d,a
inc de
$nn
ld a,BullKnife
ldhlia
lda HeroY
ldhlia
lda HeroY+1
ldhlia
lda HeroX
add e
ldhlia
lda HeroX+1
adc d
ldhlia
ld a,#0a ; Time on
ldhlia
ret
AddGrenade: ; C=Type of bullet
; DE=Main speed of bullet
ld hl,GrenadeIniTab
call IniBullCommon
ret nc
ld b,0
; BC=Speed Y
; DE=Speed X
call SaveBullData
ret
AddBullet: ; C=Type of bullet
; DE=Main speed of bullet
ld hl,BulletIniTab
call IniBullCommon
ret nc
call SaveBullData
ret
IniBullCommon:
STHL var1
ldal WeapFX
rst #10
call FindBullPlace
ret nc ; Full!
ld a,c
ldhlia
push hl
LDHL var1
call AdjBullData
pop hl
scf
ret
AdjBullData:
ldal HeroJump
and a
beq $floor
bra $ok ; In air, only front!
$floor ldal HeroAttAn
cmp AnimShtFrnt
beq $ok
inc hl
inc hl
cmp AnimShtUp
beq $ok
inc hl
inc hl
cmp AnimShtTop
beq $ok
inc hl
inc hl
cmp AnimShtDwn
beq $ok
ret
$ok ldahli
ld h,(hl)
ld l,a
jp (hl)
GrenadeIniTab:
dw GrenadeFront,GrenadeUp,GrenadeTop,GrenadeDown
GrenadeFront:
ld c,#10+#80
ret
GrenadeUp:
ld c,#60+#80
ret
GrenadeTop:
ld de,1
ld c,#60+#80
ret
GrenadeDown:
ld c,+#28
ret
BulletIniTab:
dw BulletFront,BulletUp,BulletTop,BulletDown
BulletFront:
ld bc,0
ret
BulletUp:
ld a,e
cpl
ld c,a
ld a,d
cpl
ld b,a
inc bc
ret
BulletTop:
ld a,e
cpl
ld c,a
ld a,d
cpl
ld b,a
inc bc
ld de,0
ret
BulletDown:
ld c,e
ld b,d
ret
FindBullPlace:
ld hl,BULTABLE
ld b,MAX_BUL
$search ld a,(hl)
cmp #ff
beq $found
ADDHL LENBT
dec b
bne $search
and a
ret
$found scf
ret
; No, Bow, Pis, Gu1, Gu2
; No, Bow, Pis, Gu1, Gu2
OffXUp: dw 0, 14, 16, 18, 18
OffYUp: dw 0, -28, -32, -26, -26
; No, Bow, Pis, Gu1, Gu2
OffXTop: dw 0, 2, -2, -1, 0
OffYTop: dw 0, -32, -40, -32, -32
; No, Bow, Pis, Gu1, Gu2
OffYDown: dw 0, -8, -16, -16, -4
SaveBullData:
ldal HeroJump
and a
beq $floor
bra $front ; In air, only front!
$floor ldal HeroAttAn
cmp AnimShtFrnt
beq $front
cmp AnimShtUp
beq $up
cmp AnimShtTop
beq $top
cmp AnimShtDwn
beq $down
xor a
sta var1
sta var1+1
sta var2
sta var2+1
bra $put
$front stw var1,OffYFrnt
stw var2,OffXFrnt
bra $put
$up stw var1,OffYUp
stw var2,OffXUp
bra $put
$top stw var1,OffYTop
stw var2,OffXTop
bra $put
stw var2,OffXDown
$put push h11*5+10*5*4",0
lda var1
ld e,a
$bytere
|
The Turok series | |
|---|---|
|
Nintendo 64 |
Turok: Dinosaur Hunter (Prototype) • Turok 2: Seeds of Evil (Prototype) • Turok: Rage Wars • Turok 3: Shadow of Oblivion (Prototypes) |
|
Game Boy (Color) |
Turok: Battle of the Bionosaurs • Turok 2: Seeds of Evil • Turok: Rage Wars • Turok 3: Shadow of Oblivion |
|
Game Boy Advance |
|
|
Windows |
Turok: Evolution • Turok • Turok: Dinosaur Hunter (2015) • Turok 2: Seeds of Evil (2017) • Turok 3: Shadow of Oblivion (2023) |
|
See Also | |