Kuribo64
Views: 19,987,703 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
04-18-24 08:42 AM
Guest:

0 users reading Battle for Bikini Bottom Hacking Information | 1 bot

Main - Misc. ROM hacking - Battle for Bikini Bottom Hacking Information Hide post layouts | New reply


MK7tester
Posted on 02-10-13 02:46 AM (rev. 3 of 02-10-13 02:49 AM) Link | #14604
Now, I need some help here.

Apparently, Battle for Bikini Bottom level file formats are .sdf as shown by this example:

"kf01_kelp_forest_outskirts.sdf"

Now what i'm trying to figure out is how I dig into these files, are there any other games that use this format? Er...blarg.

I can't even find any enemy files or anything, this directory is really difficult.

Arisotura
Posted on 02-10-13 12:52 PM Link | #14645
First thing you do is open them in a hex editor.

If the data is all gibberish, the file is encrypted, but that's unlikely.
If the data contains some plaintext bits at the beginning but is gibberish at the end, it's compressed. You'll have to figure out how to decompress it.

Once you got all the plain data, first thing you can do is trying to identify data patterns, pointers and all.

____________________
NSMBHD - Kafuka - Jul
melonDS the most fruity DS emulator there is

zafkflzdasd

shibboleet
Posted on 02-10-13 03:29 PM Link | #14657
derp If you give me a file, I can look into it as well :p

____________________
a

Fiachra
Posted on 02-10-13 04:10 PM (rev. 2 of 02-10-13 04:10 PM) Link | #14663
Normal character files for Battle for Bikini Bottom are stored as RenderWare .dff models (see here http://www.spriters-resource.com/community/showthread.php?tid=20770). SDF may be a compressed version of this. If it is compressed it probably uses some variant of the LZW algorithm. It may also be some format used by the RenderWare engine.

NWPlayer123
Posted on 02-10-13 05:41 PM Link | #14699
hm, this should be a fun project. I'll start downloading the files.

____________________
"I hate playing musical chats" ~ Quote of the month

MK7tester
Posted on 02-10-13 06:33 PM (rev. 3 of 02-10-13 06:34 PM) Link | #14704
Opened in HexEditorNeo


[image]

This will be an easy project, by the looks of that.

shibboleet
Posted on 02-10-13 06:34 PM (rev. 3 of 02-10-13 07:52 PM) Link | #14707
hmm...Triggers. Derp, that should make stuff easier.

But, where the fuck are the coordinates? Well meep, I'm downloading the ISO right now, and then I'll look.


PATH=.

# Boot HIP file
BOOT=HB00

ShowMenuOnBoot = 1
VideoSystemAutoDetect = 0
VideoSystem = NTSC

# Can the player get hurt ? 1 == YES, 0 == NO
G.TakeDamage = 1

# Delay timers on taking damage before you can take damage again
G.DamageTimeHit = 1.5
G.DamageTimeSurface = 1.5
G.DamageTimeEGen = 1.5
G.DamageSurfKnock = 1.75 # Must be non-zero
G.DamageGiveHealthKnock = 1.75 # Zero to disable knockback by default

# Cheats enabled?
G.CheatSpongeball = 0
G.CheatPlayerSwitch = 0
# Can I always portal with the pause menu? 1 == YES, 0 == NO
G.CheatAlwaysPortal = 0
G.CheatFlyToggle = 0
G.DisableForceConversation = 0

# Initial inventory counts (useful for debugging)
G.InitialShinyCount = 0
G.InitialSpatulaCount = 0

# Play music? 1 == YES, 0 == NO
NoMusic=0
# Report SFX sizes?
SFXReport=0

#-----------------------------------------------------------------
# Global powerups -- can be given in game with the following
# events (sent to player or dispatcher):
# Give PowerUp 0 = BubbleBowl
# Give PowerUp 1 = CruiseBubble
#
G.BubbleBowl = 0
G.CruiseBubble = 0

# Frame rate clamping
# set to 0 for 60/50 fps, 2 for 30/25 fps, etc.
minVSyncCnt = 0

## Profiling options:
# '1'
# '2'
# - function level profiling
# '3'
# - assembly level profiling for specified routines
# - For each of the following ProfFunc* use the full name of the
# function/method to profile. (eg, hot spots identified by profile level 2)
# - NOTE: 'X' and 'Circle' buttons are reserved in profiler mode
# - ALSO: Debug controller 'Start' resets profile tracking

# Profile=2

# ProfFuncTriangle = IntersectBranch
# ProfFuncSquare = IntersectLeaf
# ProfFuncLeft =
# ProfFuncRight =
# ProfFuncUp =
# ProfFuncDown =


#-----------------------------------------------------------------
# HIP/HOP loading
# Enable HIP/HOP scene loading protocol? 1 == YES, 0 == NO
EnableHipHopLoading = 1

#--------------Full Game File---------------------------------
# Task menu (says where to warp to for each task)
Menu01 = HB 01 01 01 02 03 05 07 08 # The Neighborhood
Menu02 = JF 01 01 02 02 03 03 04 04 # Jellyfish Fields
Menu03 = BB 01 01 01 02 02 03 04 04 # Downtown Bikini Bottom
Menu04 = GL 01 01 01 01 02 03 03 03 # Goo Lagoon
Menu05 = B1 01 00 00 00 00 00 00 00 # Poseidome
Menu06 = RB 01 01 01 01 02 03 03 03 # Rock Bottom
Menu07 = BC 01 02 02 02 02 03 04 05 # Barnacle Cave
Menu08 = SM 01 01 02 02 03 03 04 04 # Sand Mountain
Menu09 = B2 01 00 00 00 00 00 00 00 # Industrial Park
Menu10 = KF 01 01 02 02 04 04 05 05 # Kelp Forest
Menu11 = GY 01 01 01 02 02 03 03 04 # Flying Dutchman's Graveyard
Menu12 = DB 01 01 02 02 03 04 01 06 # Spongebob's Dream
Menu13 = B3 02 03 00 00 00 00 00 00 # Chum Bucket Lab
Menu14 = PS 01 01 01 01 01 01 01 01 # Patrick Sock Spatulas
Menu15 = KS 01 01 01 01 01 01 01 01 # Mr Krabs Spatulas

#-----------------------------------------------------------------
# Camera system parameters

zcam_pad_pyaw_scale = 0.18; # bigger number => faster yaw rotation about player
zcam_pad_pitch_scale = 0.77; # bigger number => faster look up/down

# near position:
zcam_near_d = 3 # distance (relative to player)
zcam_near_h = 1.8 # height (relative to player)
zcam_near_pitch = 10 # pitch in degrees

# far position:
zcam_far_d = 5 # distance (relative to player)
zcam_far_h = 3 # height (relative to player)
zcam_far_pitch = 15 # pitch in degrees

# zoomed in, above-looking-down position:
zcam_above_d = 0.3 # distance (relative to player)
zcam_above_h = 2.4 # height (relative to player)
zcam_above_pitch = 68 # pitch in degrees

# zoomed in, below-looking-up position:
zcam_below_d = 0.65 # distance (relative to player)
zcam_below_h = 0.2 # height (relative to player)
zcam_below_pitch = -68 # pitch in degrees

# high bounce camera
zcam_highbounce_d = 0.2 # distance (relative to player)
zcam_highbounce_h = 5.0 # height (relative to player)
zcam_highbounce_pitch = 75 # pitch in degrees

# Wall jump camera
zcam_wall_d = 7.5 # distance (relative to player)
zcam_wall_h = 2.0 # height (relative to player)
zcam_wall_pitch = 18 # pitch in degrees

# camera collision parameters
xcam_collis_radius = 0.4; # bigger number (not > 0.5 please) should keep sb in frame better.
xcam_collis_stiffness = 0.3; # bigger number (keep it between 0 and 1) moves quicker in response.

# "smart" camera rotation parameters (camera "over-rotates" to
# get around behind player when he's running sideways or backwards)
zcam_overrot_min = 25 # angle at which rotation adjustment starts (0 degrees = forward)
zcam_overrot_mid = 90 # angle at which rotation adjustment peaks
zcam_overrot_max = 170 # angle at which rotation adjustment goes back to zero (180=straight back)
zcam_overrot_rate = 0.1 # rotation speed factor -- keep this small, set to zero to disable
zcam_overrot_tstart = 1.5 # time where rotation starts while holding down stick
zcam_overrot_tend = 2.5 # time where rotation peaks while holding down stick
zcam_overrot_velmin = 3.0 # minimum velocity to cause rotation to adjust
zcam_overrot_velmax = 5.0 # maximum velocity to cause rotation to adjust
zcam_overrot_tmanual = 1.5 # extra time rotation is disabled when manual camera controls used


#--------------------------------------------------------------------------------
# Skip times (when player can use button press to skip something)
#--------------------------------------------------------------------------------
gSkipTimeCutscene = 1.0 # Minimum of 1.0 allowed
gSkipTimeFlythrough = 1.0


#-----------------------------------------------------------------
# Tuning values for player character:
# Anything with a "G" prefix is a global setting (affects all
# characters). The other character prefixes are "SB", "Sandy",
# and "Patrick".
#
G.AnalogMin = 32
G.AnalogMax = 110

#-----------------------------------------------------------------
# Sundae powerup info timeout
G.SundaeTime = 10.0
G.SundaeMult = 1.5



#-----------------------------------------------------------------
# Shiny Object Values
G.ShinyValuePurple = 50
G.ShinyValueBlue = 10
G.ShinyValueGreen = 5
G.ShinyValueYellow = 2
G.ShinyValueRed = 1

#-----------------------------------------------------------------
# Shiny Object Values for Combos

G.ShinyValueCombo0 = 0 # These first two should be the same
G.ShinyValueCombo1 = 0
G.ShinyValueCombo2 = 2
G.ShinyValueCombo3 = 3 # These two should be the same as well
G.ShinyValueCombo4 = 3 # because they use the same textbox
G.ShinyValueCombo5 = 5
G.ShinyValueCombo6 = 10
G.ShinyValueCombo7 = 15
G.ShinyValueCombo8 = 20
G.ShinyValueCombo9 = 25
G.ShinyValueCombo10 = 30
G.ShinyValueCombo11 = 40
G.ShinyValueCombo12 = 50
G.ShinyValueCombo13 = 60
G.ShinyValueCombo14 = 75
G.ShinyValueCombo15 = 100
G.ComboTimer = 1.0




#-----------------------------------------------------------------
# Bubble Bash parameters:
# Time is time to peak height (from launch), Delay is time before launch happens,
# CVTime is duration of constant-velocity period, before gravity sets in.
# As far as the animation goes, the transition to "Attack" animation
# occurs as soon as "Start" animation finishes. transition to "Strike"
# occurs when contact is detected, otherwise transitions to normal fall when
# peak height is reached.
#
G.BBashTime = 0.315 # JPH: increased from 0.3 to compensate for code change
G.BBashDelay = 0.25
G.BBashCVTime = 0.215 # JPH: increased from 0.2 to compensate for code change
G.BBashHeight = 3.3 # JPH: increased from 3 to compensate for code change
G.BBounceSpeed = 15

G.BSpinMinFrame = 0
G.BSpinMaxFrame = 11
# The radius of the damage ball at the center of the bubble wand
G.BSpinRadius = 0.4

G.SandyMeleeMinFrame = 1.0
G.SandyMeleeMaxFrame = 9.0
G.SandyMeleeRadius = 0.3

G.BubbleBowlTimeDelay = 0.75
G.BubbleBowlLaunchPosLeft = 0.0
G.BubbleBowlLaunchPosUp = 1.0
G.BubbleBowlLaunchPosAt = 1.5
G.BubbleBowlLaunchVelLeft = 0.0
G.BubbleBowlLaunchVelUp = 0.0
G.BubbleBowlLaunchVelAt = 10.0
G.BubbleBowlPercentIncrease = 0.85
G.BubbleBowlMinSpeed = 0.6
G.BubbleBowlMinRecoverTime = 0.15

#-----------------------------------------------------------------
# Track-sliding parameters:
# - Slide acceleration scales from AccelStart down to AccelEnd as velocity
# (in direction of slope) increases from AccelVelMin to AccelVelMax.
# - velocity is directly boosted by a combination of AccelPlayerFwd and
# AccelPlayerSide based on how much the player points the stick
# in the downward direction.
# - max speed increases from VelMaxStart to VelMaxEnd over
# VelMaxIncTime, as long as actual speed stays >= max speed.
# if speed falls below max speed, timer resets.
# - air speed stays constant for AirHoldTime,
# then drops to zero over AirSlowTime.
# - that was the intention anyway... whats really happening now
# is that normal air controls blend ON over AirHoldTime period,
# with speed held constant, then
# velocity blends OFF over subsequent AirSlowTime period.
# (seems to work okay, but give us your thoughts.)
# - same thing for the AirDbl*Time parameters, except these
# apply to the double jump when sliding.
# - VelDblBoost is boost to velocity applied on double jump,
# in current direction (but not uphill).
#
# Recommendations for tweaking:
# - AccelStart/End = increase to reduce time to accelerate from 0 - 11 m/s without stick control
# - AccelPlayerFwd = increase to reduce time to accelerate from 0 - 11 m/s with stick pressed forward
# - AccelPlayerBack = increase to reduce time to decelerate
# - AccelPlayerSide = increase to improve turning
# - VelMaxIncTime = reduce to reduce time to accelerate from 11 - 16 m/s without stick control
# - VelMaxIncAccel = increase to reduce time to accelerate from 11 - 16 m/s with stick pressed forward
#
G.SlideAccelVelMin = 5
G.SlideAccelVelMax = 10
G.SlideAccelStart = 8 # Higher value reduces time from 0 - 11 m/s
G.SlideAccelEnd = 3
G.SlideAccelPlayerFwd = 5
G.SlideAccelPlayerBack = 8
G.SlideAccelPlayerSide = 22.5
G.SlideVelMaxStart = 11
G.SlideVelMaxEnd = 16
G.SlideVelMaxIncTime = 4
G.SlideVelMaxIncAccel = 1
G.SlideAirHoldTime = 3
G.SlideAirSlowTime = .75
G.SlideAirDblHoldTime = 2
G.SlideAirDblSlowTime = .5
G.SlideVelDblBoost = 6
#
#G.SlideAirHoldTime = 0.75
#G.SlideAirSlowTime = 3.0
#G.SlideAirDblHoldTime = 0.5
#G.SlideAirDblSlowTime = 2.0
#G.SlideVelDblBoost = 6

#---------------------------------------------------------
# StartSlideAngle - Degrees of slope that scooby starts sliding on
# StopSlideAngle - Degrees of slope that scooby stops sliding on
# ... should be less than StartSlideAngle
#
G.StartSlideAngle = 20
G.StopSlideAngle = 10

#---------------------------------------------------------
# RotMatchMaxAngle - Max degrees of slope that scooby will match
# his orientation to
# RotMatchMatchTime - Time (in seconds) it takes scooby to match the slope
# RotMatchRelaxTime - Time (in seconds) it takes scooby to relax to
# normal orientation (eg while in air)
#
G.RotMatchMaxAngle = 30
G.RotMatchMatchTime = 0.1
G.RotMatchRelaxTime = 0.3

# Gravity for all characters
G.Gravity = 30


#---------------------------------------------------------
# Patrick Pickup / Carry / Throw settings
#
Carry.MinDist = 0.675 # Min dist to detect item to pick up
Carry.MaxDist = 1.900 # Max dist to detect item to pick up
Carry.MinHeight = -0.2 # Min height to detect item
Carry.MaxHeight = 0.4 # Max height to detect item
Carry.MaxCosAngle = 45.0 # Angle to detect item to pick up

Carry.ThrowMinDist = 1.5 # Min distance to autotarget for throwing
Carry.ThrowMaxDist = 12.0 # Max distance to autotarget for throwing
Carry.ThrowMinHeight = -3.0 # Min height to autotarget for throwing
Carry.ThrowMaxHeight = 5.0 # Max height to autotarget for throwing
Carry.ThrowMaxStack = 2.75 # Max height fruit can be stacked
Carry.ThrowMaxCosAngle = 25.0 # Angle to autotarget

Carry.GrabLerpMin = 0.0 # First interpolation frame for pickup animation
Carry.GrabLerpMax = 0.2 # Last interpolation frame for pickup animation

#---------------------------------------------------------
# Global settings for throwable objects--note that these
# are settings from where patrick actually releases the
# object in the animation--so the actual height and distance
# is somewhat higher. You'll have to fiddle with it...
# Note that throw gravity is currently the same as normal
# gravity in the scene, it could be changed though...
#
Carry.ThrowGravity = 50.0
Carry.ThrowHeight = 3.0
Carry.ThrowDistance = 10.0


#---------------------------------------------------------
# Fruit bounciness settings. The first two numbers are velocity
# values over which the bounciness is decayed over time on the floor
# (to make the fruit settle with fewer bounces). In other words, if the
# fruit is moving 6.0 m/s (MAX) or more, it will bounce at the values shown.
# As the velocity drops to 0.3 m/s (MIN), it will decay to zero--once it
# reaches zero, the object stops its motion and comes to rest.
#
# Higher bounce values = more bounciness.
# 1 == perfect reflection
# 0 == no reflection
#
# Higher friction values = less friction (I know, it seems kinda backwards):
# 1 == frictionless (object will slide forever)
# 0 == infinite friction (object stops on a dime)
#
# Note that off ceilings and walls, there is no friction. If you wanted to
# change the fruit so that it bounces "in place" where it first lands, you
# could set the FruitFloorFriction to "0". This might make puzzles where
# you have to transport objects across gaps easier.
#
Carry.FruitFloorDecayMin = 0.3
Carry.FruitFloorDecayMax = 6.0
Carry.FruitFloorBounce = 0.15
Carry.FruitFloorFriction = 0.4
Carry.FruitCeilingBounce = 0.1
Carry.FruitWallBounce = 0.5

# Fruit lifetime in seconds. Note that it takes around 0.75 seconds to pickup
# and 0.75 seconds to throw for Patrick (with current animations which have
# been accelerated somewhat).
#
Carry.FruitLifetime = 15.0



# Special moves for the characters
eSPECIAL_Slippers = 0 # First sneak
eSPECIAL_LampShade = 0 # First disguise
eSPECIAL_Spring = 1 # Double jump
eSPECIAL_FootballHelmet = 0 # Headbutt
eSPECIAL_StickyBoots = 0 # Anti-sticky boots
eSPECIAL_LightningBolt = 1 # Buttsmash
eSPECIAL_LightningBoltStun = 0 # Buttsmash Stun
eSPECIAL_Plungers = 0 # Anti-slippery
eSPECIAL_Shovel = 0 # Dig powerup
eSPECIAL_Umbrella = 0 # Floating
eSPECIAL_BubbleGum = 0 # Spits wads of sticky/bouncy gum
eSPECIAL_SoapBar = 0 # Spits soap bubbles
eSPECIAL_BlackKnight = 0 # Second disguise
eSPECIAL_FlowerPot = 0 # Are these last two being used?
eSPECIAL_DivingHelmet = 0 # Last disguise (that you don't use?)




#--------------------------------------------------------------------------------
# SPONGEBOB SETTINGS
#--------------------------------------------------------------------------------
# Speed values for character. First value is minimum speed character can move,
# any less than that and character turns in place. First to second is the walking
# range, second to third is running range. The last 3 numbers are the
# corresponding stick deflections for those speeds.
#

# SB.MoveSpeed = 0.6,2.5,5, 0.1,0.6,1.0 (E3 values)

# Faster sneak
SB.MoveSpeed = 0.6,4,5, 0.1,0.8,1.0

# Anim speed values, first value is nominal movement speed of animation
# assuming animation playing at normal speed. The next two values are
# the minimum and maximum allowable speed the animation will play at.
#
SB.AnimSneak = 1, .6, 4
SB.AnimWalk = 1, .6, 4
SB.AnimRun = 4.0, .5, 1.5

# Airborne parameters
SB.JumpGravity = 5
SB.GravSmooth = 0.2
SB.FloatSpeed = 3
SB.ButtsmashSpeed = 24

# Jump parameters
SB.Jump = 1.4, 0.1, 0.1
SB.Double = 1.4, 0.1, 0.1
SB.Bounce = 2, 0.3, 0.0
SB.Spring = 3.5, 0.3, 0.0
SB.Wall = 1.5, 0.3, 0.0
SB.WallJumpVelocity = 7.0

# Ledge hanging parameters
# animGrab = time in animation (in frames) to where character is in contact with ledge
# (time for interpolation from airborne position to grabbing position)
SB.Ledge.animGrab = 3

# Dampening factor for xz and y velocity while spinning. The higher this is, the less SB can
# move when spinning.
SB.spin_damp_xz = 15.0
SB.spin_damp_y = 15.0

# Model ordering indices for SB. Change these whenever the exporter chooses a different random order.
SB.model_index.body = 1 #0
SB.model_index.arm_l = 2 #1
SB.model_index.arm_r = 3 #2
SB.model_index.ass = 4 #3
SB.model_index.underwear = 5 #4
SB.model_index.wand = 0 #5
SB.model_index.tongue = 6
SB.model_index.bubble_helmet = 7
SB.model_index.bubble_shoe_l = 8
SB.model_index.bubble_shoe_r = 9
SB.model_index.shadow_body = 10
SB.model_index.shadow_arm_l = 11
SB.model_index.shadow_arm_r = 12
SB.model_index.shadow_wand = 13


#--------------------------------------------------------------------------------
# CRUISE BUBBLE SETTINGS
#--------------------------------------------------------------------------------
##################################################################
# Variables affecting the aiming state.
##################################################################
# Distance of camera from player.
SB.cb.aim.dist = 2.0
# Height of camera above player.
SB.cb.aim.height = 1.5
# Vertical pitch of the camera, -90 to 90 degrees.
SB.cb.aim.pitch = 0.0
# Speed of the camera movement around center.
SB.cb.aim.speed = 1.0
# Time required to move between two positions.
SB.cb.aim.move_time = 1.0
##################################################################
# Variables affecting the camera attachment state.
##################################################################
# Time to wait before moving the camera to the launch position. *Incomplete
SB.cb.attach.wait_time = 1.0
# Location relative to player to start the launch. *Incomplete.
SB.cb.attach.offset.x = 1.0
SB.cb.attach.offset.y = 2.0
SB.cb.attach.offset.z = 0.0
##################################################################
# Parameters affecting the missle while flying.
##################################################################
# Missle acceleration.
SB.cb.fly.accel = 6.0
# Max missle velocity.
SB.cb.fly.max_vel = 12.0
# Field-of-view angle while flying.
SB.cb.fly.fov = 100.0
# Maximum time the missle can be in the air.
SB.cb.fly.live_time = 6.0
##################################################################
# Rotational flying parameters.
##################################################################
# Horizontal turn speed.
SB.cb.fly.turn.xdelta = 5.0
# Vertical turn speed.
SB.cb.fly.turn.ydelta = 4.0
# Speed at which horizontal rotation decays. 0 to 1. A value of 0 never
# stops turning, and a value of 1 stops immediately.
SB.cb.fly.turn.xdecay = 0.99
# Speed at which vertical rotation decays. 0 to 1. A value of 0 never
# stops turning, and a value of 1 stops immediately.
SB.cb.fly.turn.ydecay = 0.99
# The vertical rotation boundary. 0 to 1. A value of 0 allows no
# vertical rotation, and a value of 1 allows completely vertical rotation.
SB.cb.fly.turn.ybound = 0.6
# The fraction of turn speed applied to roll. A positive value rolls into
# the turn, a negative value rolls out of the turn, and a 0 value does not
# roll at all.
SB.cb.fly.turn.roll_frac = 0.2
##################################################################
# Parameters affecting collision distance.
##################################################################
# Minimum distance to hit a non-enemy, non-environment object.
SB.cb.fly.hit_dist.object = 0.2
# Minimum distance to hit an enemy.
SB.cb.fly.hit_dist.enemy = 0.2
# Minimum distance to hit the environment.
SB.cb.fly.hit_dist.env = 0.2
##################################################################
# Parameters affecting the explosion state.
##################################################################
# Delay before returning to player after explosion. *Incomplete.
SB.cb.explode.wait_time = 1.0



#--------------------------------------------------------------------------------
# PATRICK SETTINGS
#--------------------------------------------------------------------------------
# Speed values for character. First value is minimum speed character can move,
# any less than that and character turns in place. First to second is the walking
# range, second to third is running range. The last 3 numbers are the
# corresponding stick deflections for those speeds.
#
Patrick.MoveSpeed = 0.6,2.5,5, 0.1,0.6,1.0

# Anim speed values, first value is nominal movement speed of animation
# assuming animation playing at normal speed. The next two values are
# the minimum and maximum allowable speed the animation will play at.
#
Patrick.AnimSneak = 1.5, .5, 2.5
Patrick.AnimWalk = 1.5, .5, 2.5
Patrick.AnimRun = 3.0, .5, 2.5

# Airborne parameters
Patrick.JumpGravity = 5
Patrick.GravSmooth = 0.2
Patrick.FloatSpeed = 3
Patrick.ButtsmashSpeed = 24

# Jump parameters
Patrick.Jump = 1.5, 0.1, 0.1
Patrick.Double = 1.5, 0.1, 0.1
Patrick.Bounce = 2, 0.3, 0.0
Patrick.Spring = 3.5, 0.3, 0.0

# Ledge hanging parameters
Patrick.Ledge.animGrab = 3


#--------------------------------------------------------------------------------
# SANDY SETTINGS
#--------------------------------------------------------------------------------
# Speed values for character. First value is minimum speed character can move,
# any less than that and character turns in place. First to second is the walking
# range, second to third is running range. The last 3 numbers are the
# corresponding stick deflections for those speeds.
#
Sandy.MoveSpeed = 0.6,2.5,5, 0.1,0.6,1.0

# Anim speed values, first value is nominal movement speed of animation
# assuming animation playing at normal speed. The next two values are
# the minimum and maximum allowable speed the animation will play at.
#
Sandy.AnimSneak = 1.5, .5, 2.5
Sandy.AnimWalk = 1.5, .5, 2.5
Sandy.AnimRun = 3.0, .5, 2.5

# Airborne parameters
Sandy.JumpGravity = 5
Sandy.GravSmooth = 0.2
Sandy.FloatSpeed = 3
Sandy.ButtsmashSpeed = 24

# Jump parameters
Sandy.Jump = 1.5, 0.1, 0.1
Sandy.Double = 1.5, 0.1, 0.1
Sandy.Bounce = 2, 0.3, 0.0
Sandy.Spring = 3.5, 0.3, 0.0

# Ledge hanging parameters
Sandy.Ledge.animGrab = 3


#--------------------------------------------------------------------------------
# PLAYER OUT-OF-BOUNDS STATE SETTINGS
#--------------------------------------------------------------------------------

# Time in seconds the player can be out of bounds. Range: greater than 0.
#player.state.out_of_bounds.out_time = 9.0
# Time in seconds required before out-of-bounds timer resets. Range: greater
# than 0, less than out_time.
#player.state.out_of_bounds.reset_time = 3.0
# Distance of camera from player.
#player.state.out_of_bounds.cam_dist = 3.0
# Height of camera above player.
#player.state.out_of_bounds.cam_height = 1.0
# Time it takes the camera to reorient itself to zoom in and face SB.
#player.state.out_of_bounds.reorient_time = 0.25
# The resource identifier of the model.
#player.state.out_of_bounds.hand_model = hand

# Settings affecting how the hand moves while grabbing the player.
#########################
# The max velocity of the hand as it comes in. Range: greater than 0.
#player.state.out_of_bounds.grab.in_vel = 1.0
# The distance required for the hand to stop, as a fraction of the screen.
# Controls how suddenly the hand stops. Range: 0 to 1.
#player.state.out_of_bounds.grab.in_stop_dist = 0.05
# The amount of time the hand waits before moving back out.
#player.state.out_of_bounds.grab.wait_time = 0.5
# The max velocity of the hand as it goes out. Range: greater than 0.
#player.state.out_of_bounds.grab.out_vel = 0.5
# The distance required for the hand to reach max velocity as it goes out,
# as a fraction of the screen. Controls how suddenly the hand starts moving.
# Range 0 to 1.
#player.state.out_of_bounds.grab.out_start_dist = 0.1
# On-screen position of the hand. This position is in 0 to 1 screen
# coordinates, with (0, 0) at the top left and positive y going down.
#player.state.out_of_bounds.grab.in_x = 0.0
#player.state.out_of_bounds.grab.in_y = -0.25
# The time that elapses before fade-out starts.
#player.state.out_of_bounds.grab.fade_start_time = 2.0
# The time required to fade to black.
#player.state.out_of_bounds.grab.fade_time = 0.5

# Settings affecting how the hand moves while dropping the player.
########################
# The max velocity of the hand as it comes in. Range: greater than 0.
#player.state.out_of_bounds.drop.in_vel = 0.5
# The distance required for the hand to stop, as a fraction of the screen.
# Controls how suddenly the hand stops. Range: 0 to 1.
#player.state.out_of_bounds.drop.in_stop_dist = 0.1
# The amount of time the hand waits before moving back out.
#player.state.out_of_bounds.drop.wait_time = 0.5
# The max velocity of the hand as it goes out. Range: greater than 0.
#player.state.out_of_bounds.drop.out_vel = 1.0
# The distance required for the hand to reach max velocity as it goes out,
# as a fraction of the screen. Controls how suddenly the hand starts moving.
# Range 0 to 1.
#player.state.out_of_bounds.drop.out_start_dist = 0.05
# On-screen position of the hand. This position is in 0 to 1 screen
# coordinates, with (0, 0) at the top left and positive y going down.
#player.state.out_of_bounds.drop.in_x = 0.0
#player.state.out_of_bounds.drop.in_y = -0.25
# The time that elapses before fading back in.
player.state.out_of_bounds.drop.fade_start_time = 0.2
# The time required to fade in from black.
#player.state.out_of_bounds.drop.fade_time = 0.5

# Starting position of the hand, outside the screen rectangle.
#player.state.out_of_bounds.out_y = -1.0
# Size scaling fractions.
#player.state.out_of_bounds.hand_size_x = 0.5
#player.state.out_of_bounds.hand_size_y = 0.5
# Rotation of the hand, expressed as yaw, pitch, and roll.
#player.state.out_of_bounds.hand_yaw = 0.0
#player.state.out_of_bounds.hand_pitch = 0.0
#player.state.out_of_bounds.hand_roll = 180.0


#--------------------------------------------------------------------------------
# SPONGEBOB UNDERWEAR-BUNGEE SETTINGS
#--------------------------------------------------------------------------------
# Uncomment any to change the default values.

# The bottom fraction of the total distance for which the bottom apex animation
# plays. Between 0 and 0.5
#SB.state.bungee.bottom_anim_frac = 0.05
# The top fraction of the total distance for which the bottom apex animation
# plays. Between 0 and 0.5
#SB.state.bungee.top_anim_frac = 0.1
# Transition time going between bottom and normal animations.
#SB.state.bungee.bottom_anim_time = 0.1
# Transition time going between top and normal animations.
#SB.state.bungee.top_anim_time = 0.1
# Transition time going between hit and normal animations.
#SB.state.bungee.hit_anim_time = 0.1
# Multiplier affecting rotation induced when spongebob takes damage.
#SB.state.bungee.damage_rot = 10.0
# Time in seconds to delay before restarting after death.
#SB.state.bungee.death_time = 3.0
# Velocity-based blur intensity. Increase to blur more. 0 to 1 range.
#SB.state.bungee.vel_blur = 0.0
# Distance from camera at which the bungee cord fades in. 1 or higher.
#SB.state.bungee.fade_dist = 2.0
# Radius of the player, while bungeeing.
#SB.state.bungee.player_radius = 1.0

# Constants affecting the player's movement on the horizontal(x/z) plane.
########################
# Padding around the edges of the player's movement. Increase this to ensure
# that the player is able to reach all the way to the edges. I.e. since the
# analog control pad does not go all the way to the extremes, increase this value
# to narrow the control pad extremes. Valid values are between 0 and 0.25.
#SB.state.bungee.horizontal.edge_zone = 0.05
# Horizontal sway force. The higher this is, the easier it is for the player to
# move.
#SB.state.bungee.horizontal.sway = 3.0
# The movement decay factor. Controls how much of the movement velocity is
# kept per frame. Valid values are in the range 0 to 1,
#SB.state.bungee.horizontal.decay = 0.95

# Constants affecting the dive action.
########################
# Time during which a dive accelerates. This value also specifies how quickly
# SB animates into a dive.
#SB.state.bungee.dive.time = 0.5
# Specifies how long it takes for the dive to animate from the dive animation to
# the normal cycle animation. This does not effect the time spent accelerating
# downward.
#SB.state.bungee.dive.anim_out_time = 0.5
# The minimum and maximum distance between which the dive can take place,
# expressed as a fraction of the player's vertical range. For instance, if
# min_dist is .1, max_dist is .6, and the player's vertical movement is between
# 10 and 110 meters from the hook, the player may dive at any time while between
# 20 (10 + 100*.1) and 70 (10 + 100*.6) meters from the hook. Note that the
# maximum distance must be greater than .5, since the player's rest position is
# at .5, otherwise a dive would not be possible from a complete stop..
#SB.state.bungee.dive.min_dist = 0.0
#SB.state.bungee.dive.max_dist = 0.6

# Playback options:
# PlaybackMode: 0 - off, 1 - record, 2 - play, 3 - play and dump frames
# PlaybackFile: sets the filename to dump playback data into
# ScreenDumpPath sets the folder to dump into (for example, "c:\sb\dump\")
# ScreenDumpStartFrame and ScreenDumpEndFrame set a frame range to dump
# ForceCinematic: if > 0, plays the nth cinematic in the scene
#
# To record:
# 1) Set PlaybackMode to 1
# 2) Run the game (controller data will be saved internally)
# 3) If you are happy with the recording, press triangle/Y on the debug
# controller -- this will write the data to the PlaybackFile
# 4) Rerun the game with PlaybackMode set to 2 or 3 to play or play/dump the frames
PlaybackMode=0
PlaybackFile=test.pbk
ScreenDumpPath=c:\sb\dump\
ScreenDumpStartFrame=0
ScreenDumpEndFrame=65535
ForceCinematic=0


#--------------------------------------------------------------------------------
# ScrFX Settings
#--------------------------------------------------------------------------------
ScrFxLetterBoxSize = 32.0 # y pixel height for each bar (top and bottom)
ScrFxLetterBoxAlpha = 255 # 255 opaque, 0 completely transparent

Yay, values.

Oboi, more page stretches.

PATH=.

# Boot HIP file
BOOT=HB00

ShowMenuOnBoot = 1
VideoSystemAutoDetect = 0
VideoSystem = NTSC

# Can the player get hurt ? 1 == YES, 0 == NO
G.TakeDamage = 1

# Delay timers on taking damage before you can take damage again
G.DamageTimeHit = 1.5
G.DamageTimeSurface = 1.5
G.DamageTimeEGen = 1.5
G.DamageSurfKnock = 1.75 # Must be non-zero
G.DamageGiveHealthKnock = 1.75 # Zero to disable knockback by default

# Cheats enabled?
G.CheatSpongeball = 0
G.CheatPlayerSwitch = 0
# Can I always portal with the pause menu? 1 == YES, 0 == NO
G.CheatAlwaysPortal = 0
G.CheatFlyToggle = 0
G.DisableForceConversation = 0

# Initial inventory counts (useful for debugging)
G.InitialShinyCount = 0
G.InitialSpatulaCount = 0

# Play music? 1 == YES, 0 == NO
NoMusic=0
# Report SFX sizes?
SFXReport=0

#-----------------------------------------------------------------
# Global powerups -- can be given in game with the following
# events (sent to player or dispatcher):
# Give PowerUp 0 = BubbleBowl
# Give PowerUp 1 = CruiseBubble
#
G.BubbleBowl = 0
G.CruiseBubble = 0

# Frame rate clamping
# set to 0 for 60/50 fps, 2 for 30/25 fps, etc.
minVSyncCnt = 0

## Profiling options:
# '1'
# '2'
# - function level profiling
# '3'
# - assembly level profiling for specified routines
# - For each of the following ProfFunc* use the full name of the
# function/method to profile. (eg, hot spots identified by profile level 2)
# - NOTE: 'X' and 'Circle' buttons are reserved in profiler mode
# - ALSO: Debug controller 'Start' resets profile tracking

# Profile=2

# ProfFuncTriangle = IntersectBranch
# ProfFuncSquare = IntersectLeaf
# ProfFuncLeft =
# ProfFuncRight =
# ProfFuncUp =
# ProfFuncDown =


#-----------------------------------------------------------------
# HIP/HOP loading
# Enable HIP/HOP scene loading protocol? 1 == YES, 0 == NO
EnableHipHopLoading = 1

#--------------Full Game File---------------------------------
# Task menu (says where to warp to for each task)
Menu01 = HB 01 01 01 02 03 05 07 08 # The Neighborhood
Menu02 = JF 01 01 02 02 03 03 04 04 # Jellyfish Fields
Menu03 = BB 01 01 01 02 02 03 04 04 # Downtown Bikini Bottom
Menu04 = GL 01 01 01 01 02 03 03 03 # Goo Lagoon
Menu05 = B1 01 00 00 00 00 00 00 00 # Poseidome
Menu06 = RB 01 01 01 01 02 03 03 03 # Rock Bottom
Menu07 = BC 01 02 02 02 02 03 04 05 # Barnacle Cave
Menu08 = SM 01 01 02 02 03 03 04 04 # Sand Mountain
Menu09 = B2 01 00 00 00 00 00 00 00 # Industrial Park
Menu10 = KF 01 01 02 02 04 04 05 05 # Kelp Forest
Menu11 = GY 01 01 01 02 02 03 03 04 # Flying Dutchman's Graveyard
Menu12 = DB 01 01 02 02 03 04 01 06 # Spongebob's Dream
Menu13 = B3 02 03 00 00 00 00 00 00 # Chum Bucket Lab
Menu14 = PS 01 01 01 01 01 01 01 01 # Patrick Sock Spatulas
Menu15 = KS 01 01 01 01 01 01 01 01 # Mr Krabs Spatulas

#-----------------------------------------------------------------
# Camera system parameters

zcam_pad_pyaw_scale = 0.18; # bigger number => faster yaw rotation about player
zcam_pad_pitch_scale = 0.77; # bigger number => faster look up/down

# near position:
zcam_near_d = 3 # distance (relative to player)
zcam_near_h = 1.8 # height (relative to player)
zcam_near_pitch = 10 # pitch in degrees

# far position:
zcam_far_d = 5 # distance (relative to player)
zcam_far_h = 3 # height (relative to player)
zcam_far_pitch = 15 # pitch in degrees

# zoomed in, above-looking-down position:
zcam_above_d = 0.3 # distance (relative to player)
zcam_above_h = 2.4 # height (relative to player)
zcam_above_pitch = 68 # pitch in degrees

# zoomed in, below-looking-up position:
zcam_below_d = 0.65 # distance (relative to player)
zcam_below_h = 0.2 # height (relative to player)
zcam_below_pitch = -68 # pitch in degrees

# high bounce camera
zcam_highbounce_d = 0.2 # distance (relative to player)
zcam_highbounce_h = 5.0 # height (relative to player)
zcam_highbounce_pitch = 75 # pitch in degrees

# Wall jump camera
zcam_wall_d = 7.5 # distance (relative to player)
zcam_wall_h = 2.0 # height (relative to player)
zcam_wall_pitch = 18 # pitch in degrees

# camera collision parameters
xcam_collis_radius = 0.4; # bigger number (not > 0.5 please) should keep sb in frame better.
xcam_collis_stiffness = 0.3; # bigger number (keep it between 0 and 1) moves quicker in response.

# "smart" camera rotation parameters (camera "over-rotates" to
# get around behind player when he's running sideways or backwards)
zcam_overrot_min = 25 # angle at which rotation adjustment starts (0 degrees = forward)
zcam_overrot_mid = 90 # angle at which rotation adjustment peaks
zcam_overrot_max = 170 # angle at which rotation adjustment goes back to zero (180=straight back)
zcam_overrot_rate = 0.1 # rotation speed factor -- keep this small, set to zero to disable
zcam_overrot_tstart = 1.5 # time where rotation starts while holding down stick
zcam_overrot_tend = 2.5 # time where rotation peaks while holding down stick
zcam_overrot_velmin = 3.0 # minimum velocity to cause rotation to adjust
zcam_overrot_velmax = 5.0 # maximum velocity to cause rotation to adjust
zcam_overrot_tmanual = 1.5 # extra time rotation is disabled when manual camera controls used


#--------------------------------------------------------------------------------
# Skip times (when player can use button press to skip something)
#--------------------------------------------------------------------------------
gSkipTimeCutscene = 1.0 # Minimum of 1.0 allowed
gSkipTimeFlythrough = 1.0


#-----------------------------------------------------------------
# Tuning values for player character:
# Anything with a "G" prefix is a global setting (affects all
# characters). The other character prefixes are "SB", "Sandy",
# and "Patrick".
#
G.AnalogMin = 32
G.AnalogMax = 110

#-----------------------------------------------------------------
# Sundae powerup info timeout
G.SundaeTime = 10.0
G.SundaeMult = 1.5



#-----------------------------------------------------------------
# Shiny Object Values
G.ShinyValuePurple = 50
G.ShinyValueBlue = 10
G.ShinyValueGreen = 5
G.ShinyValueYellow = 2
G.ShinyValueRed = 1

#-----------------------------------------------------------------
# Shiny Object Values for Combos

G.ShinyValueCombo0 = 0 # These first two should be the same
G.ShinyValueCombo1 = 0
G.ShinyValueCombo2 = 2
G.ShinyValueCombo3 = 3 # These two should be the same as well
G.ShinyValueCombo4 = 3 # because they use the same textbox
G.ShinyValueCombo5 = 5
G.ShinyValueCombo6 = 10
G.ShinyValueCombo7 = 15
G.ShinyValueCombo8 = 20
G.ShinyValueCombo9 = 25
G.ShinyValueCombo10 = 30
G.ShinyValueCombo11 = 40
G.ShinyValueCombo12 = 50
G.ShinyValueCombo13 = 60
G.ShinyValueCombo14 = 75
G.ShinyValueCombo15 = 100
G.ComboTimer = 1.0




#-----------------------------------------------------------------
# Bubble Bash parameters:
# Time is time to peak height (from launch), Delay is time before launch happens,
# CVTime is duration of constant-velocity period, before gravity sets in.
# As far as the animation goes, the transition to "Attack" animation
# occurs as soon as "Start" animation finishes. transition to "Strike"
# occurs when contact is detected, otherwise transitions to normal fall when
# peak height is reached.
#
G.BBashTime = 0.315 # JPH: increased from 0.3 to compensate for code change
G.BBashDelay = 0.25
G.BBashCVTime = 0.215 # JPH: increased from 0.2 to compensate for code change
G.BBashHeight = 3.3 # JPH: increased from 3 to compensate for code change
G.BBounceSpeed = 15

G.BSpinMinFrame = 0
G.BSpinMaxFrame = 11
# The radius of the damage ball at the center of the bubble wand
G.BSpinRadius = 0.4

G.SandyMeleeMinFrame = 1.0
G.SandyMeleeMaxFrame = 9.0
G.SandyMeleeRadius = 0.3

G.BubbleBowlTimeDelay = 0.75
G.BubbleBowlLaunchPosLeft = 0.0
G.BubbleBowlLaunchPosUp = 1.0
G.BubbleBowlLaunchPosAt = 1.5
G.BubbleBowlLaunchVelLeft = 0.0
G.BubbleBowlLaunchVelUp = 0.0
G.BubbleBowlLaunchVelAt = 10.0
G.BubbleBowlPercentIncrease = 0.85
G.BubbleBowlMinSpeed = 0.6
G.BubbleBowlMinRecoverTime = 0.15

#-----------------------------------------------------------------
# Track-sliding parameters:
# - Slide acceleration scales from AccelStart down to AccelEnd as velocity
# (in direction of slope) increases from AccelVelMin to AccelVelMax.
# - velocity is directly boosted by a combination of AccelPlayerFwd and
# AccelPlayerSide based on how much the player points the stick
# in the downward direction.
# - max speed increases from VelMaxStart to VelMaxEnd over
# VelMaxIncTime, as long as actual speed stays >= max speed.
# if speed falls below max speed, timer resets.
# - air speed stays constant for AirHoldTime,
# then drops to zero over AirSlowTime.
# - that was the intention anyway... whats really happening now
# is that normal air controls blend ON over AirHoldTime period,
# with speed held constant, then
# velocity blends OFF over subsequent AirSlowTime period.
# (seems to work okay, but give us your thoughts.)
# - same thing for the AirDbl*Time parameters, except these
# apply to the double jump when sliding.
# - VelDblBoost is boost to velocity applied on double jump,
# in current direction (but not uphill).
#
# Recommendations for tweaking:
# - AccelStart/End = increase to reduce time to accelerate from 0 - 11 m/s without stick control
# - AccelPlayerFwd = increase to reduce time to accelerate from 0 - 11 m/s with stick pressed forward
# - AccelPlayerBack = increase to reduce time to decelerate
# - AccelPlayerSide = increase to improve turning
# - VelMaxIncTime = reduce to reduce time to accelerate from 11 - 16 m/s without stick control
# - VelMaxIncAccel = increase to reduce time to accelerate from 11 - 16 m/s with stick pressed forward
#
G.SlideAccelVelMin = 5
G.SlideAccelVelMax = 10
G.SlideAccelStart = 8 # Higher value reduces time from 0 - 11 m/s
G.SlideAccelEnd = 3
G.SlideAccelPlayerFwd = 5
G.SlideAccelPlayerBack = 8
G.SlideAccelPlayerSide = 22.5
G.SlideVelMaxStart = 11
G.SlideVelMaxEnd = 16
G.SlideVelMaxIncTime = 4
G.SlideVelMaxIncAccel = 1
G.SlideAirHoldTime = 3
G.SlideAirSlowTime = .75
G.SlideAirDblHoldTime = 2
G.SlideAirDblSlowTime = .5
G.SlideVelDblBoost = 6
#
#G.SlideAirHoldTime = 0.75
#G.SlideAirSlowTime = 3.0
#G.SlideAirDblHoldTime = 0.5
#G.SlideAirDblSlowTime = 2.0
#G.SlideVelDblBoost = 6

#---------------------------------------------------------
# StartSlideAngle - Degrees of slope that scooby starts sliding on
# StopSlideAngle - Degrees of slope that scooby stops sliding on
# ... should be less than StartSlideAngle
#
G.StartSlideAngle = 20
G.StopSlideAngle = 10

#---------------------------------------------------------
# RotMatchMaxAngle - Max degrees of slope that scooby will match
# his orientation to
# RotMatchMatchTime - Time (in seconds) it takes scooby to match the slope
# RotMatchRelaxTime - Time (in seconds) it takes scooby to relax to
# normal orientation (eg while in air)
#
G.RotMatchMaxAngle = 30
G.RotMatchMatchTime = 0.1
G.RotMatchRelaxTime = 0.3

# Gravity for all characters
G.Gravity = 30


#---------------------------------------------------------
# Patrick Pickup / Carry / Throw settings
#
Carry.MinDist = 0.675 # Min dist to detect item to pick up
Carry.MaxDist = 1.900 # Max dist to detect item to pick up
Carry.MinHeight = -0.2 # Min height to detect item
Carry.MaxHeight = 0.4 # Max height to detect item
Carry.MaxCosAngle = 45.0 # Angle to detect item to pick up

Carry.ThrowMinDist = 1.5 # Min distance to autotarget for throwing
Carry.ThrowMaxDist = 12.0 # Max distance to autotarget for throwing
Carry.ThrowMinHeight = -3.0 # Min height to autotarget for throwing
Carry.ThrowMaxHeight = 5.0 # Max height to autotarget for throwing
Carry.ThrowMaxStack = 2.75 # Max height fruit can be stacked
Carry.ThrowMaxCosAngle = 25.0 # Angle to autotarget

Carry.GrabLerpMin = 0.0 # First interpolation frame for pickup animation
Carry.GrabLerpMax = 0.2 # Last interpolation frame for pickup animation

#---------------------------------------------------------
# Global settings for throwable objects--note that these
# are settings from where patrick actually releases the
# object in the animation--so the actual height and distance
# is somewhat higher. You'll have to fiddle with it...
# Note that throw gravity is currently the same as normal
# gravity in the scene, it could be changed though...
#
Carry.ThrowGravity = 50.0
Carry.ThrowHeight = 3.0
Carry.ThrowDistance = 10.0


#---------------------------------------------------------
# Fruit bounciness settings. The first two numbers are velocity
# values over which the bounciness is decayed over time on the floor
# (to make the fruit settle with fewer bounces). In other words, if the
# fruit is moving 6.0 m/s (MAX) or more, it will bounce at the values shown.
# As the velocity drops to 0.3 m/s (MIN), it will decay to zero--once it
# reaches zero, the object stops its motion and comes to rest.
#
# Higher bounce values = more bounciness.
# 1 == perfect reflection
# 0 == no reflection
#
# Higher friction values = less friction (I know, it seems kinda backwards):
# 1 == frictionless (object will slide forever)
# 0 == infinite friction (object stops on a dime)
#
# Note that off ceilings and walls, there is no friction. If you wanted to
# change the fruit so that it bounces "in place" where it first lands, you
# could set the FruitFloorFriction to "0". This might make puzzles where
# you have to transport objects across gaps easier.
#
Carry.FruitFloorDecayMin = 0.3
Carry.FruitFloorDecayMax = 6.0
Carry.FruitFloorBounce = 0.15
Carry.FruitFloorFriction = 0.4
Carry.FruitCeilingBounce = 0.1
Carry.FruitWallBounce = 0.5

# Fruit lifetime in seconds. Note that it takes around 0.75 seconds to pickup
# and 0.75 seconds to throw for Patrick (with current animations which have
# been accelerated somewhat).
#
Carry.FruitLifetime = 15.0



# Special moves for the characters
eSPECIAL_Slippers = 0 # First sneak
eSPECIAL_LampShade = 0 # First disguise
eSPECIAL_Spring = 1 # Double jump
eSPECIAL_FootballHelmet = 0 # Headbutt
eSPECIAL_StickyBoots = 0 # Anti-sticky boots
eSPECIAL_LightningBolt = 1 # Buttsmash
eSPECIAL_LightningBoltStun = 0 # Buttsmash Stun
eSPECIAL_Plungers = 0 # Anti-slippery
eSPECIAL_Shovel = 0 # Dig powerup
eSPECIAL_Umbrella = 0 # Floating
eSPECIAL_BubbleGum = 0 # Spits wads of sticky/bouncy gum
eSPECIAL_SoapBar = 0 # Spits soap bubbles
eSPECIAL_BlackKnight = 0 # Second disguise
eSPECIAL_FlowerPot = 0 # Are these last two being used?
eSPECIAL_DivingHelmet = 0 # Last disguise (that you don't use?)




#--------------------------------------------------------------------------------
# SPONGEBOB SETTINGS
#--------------------------------------------------------------------------------
# Speed values for character. First value is minimum speed character can move,
# any less than that and character turns in place. First to second is the walking
# range, second to third is running range. The last 3 numbers are the
# corresponding stick deflections for those speeds.
#

# SB.MoveSpeed = 0.6,2.5,5, 0.1,0.6,1.0 (E3 values)

# Faster sneak
SB.MoveSpeed = 0.6,4,5, 0.1,0.8,1.0

# Anim speed values, first value is nominal movement speed of animation
# assuming animation playing at normal speed. The next two values are
# the minimum and maximum allowable speed the animation will play at.
#
SB.AnimSneak = 1, .6, 4
SB.AnimWalk = 1, .6, 4
SB.AnimRun = 4.0, .5, 1.5

# Airborne parameters
SB.JumpGravity = 5
SB.GravSmooth = 0.2
SB.FloatSpeed = 3
SB.ButtsmashSpeed = 24

# Jump parameters
SB.Jump = 1.4, 0.1, 0.1
SB.Double = 1.4, 0.1, 0.1
SB.Bounce = 2, 0.3, 0.0
SB.Spring = 3.5, 0.3, 0.0
SB.Wall = 1.5, 0.3, 0.0
SB.WallJumpVelocity = 7.0

# Ledge hanging parameters
# animGrab = time in animation (in frames) to where character is in contact with ledge
# (time for interpolation from airborne position to grabbing position)
SB.Ledge.animGrab = 3

# Dampening factor for xz and y velocity while spinning. The higher this is, the less SB can
# move when spinning.
SB.spin_damp_xz = 15.0
SB.spin_damp_y = 15.0

# Model ordering indices for SB. Change these whenever the exporter chooses a different random order.
SB.model_index.body = 1 #0
SB.model_index.arm_l = 2 #1
SB.model_index.arm_r = 3 #2
SB.model_index.ass = 4 #3
SB.model_index.underwear = 5 #4
SB.model_index.wand = 0 #5
SB.model_index.tongue = 6
SB.model_index.bubble_helmet = 7
SB.model_index.bubble_shoe_l = 8
SB.model_index.bubble_shoe_r = 9
SB.model_index.shadow_body = 10
SB.model_index.shadow_arm_l = 11
SB.model_index.shadow_arm_r = 12
SB.model_index.shadow_wand = 13


#--------------------------------------------------------------------------------
# CRUISE BUBBLE SETTINGS
#--------------------------------------------------------------------------------
##################################################################
# Variables affecting the aiming state.
##################################################################
# Distance of camera from player.
SB.cb.aim.dist = 2.0
# Height of camera above player.
SB.cb.aim.height = 1.5
# Vertical pitch of the camera, -90 to 90 degrees.
SB.cb.aim.pitch = 0.0
# Speed of the camera movement around center.
SB.cb.aim.speed = 1.0
# Time required to move between two positions.
SB.cb.aim.move_time = 1.0
##################################################################
# Variables affecting the camera attachment state.
##################################################################
# Time to wait before moving the camera to the launch position. *Incomplete
SB.cb.attach.wait_time = 1.0
# Location relative to player to start the launch. *Incomplete.
SB.cb.attach.offset.x = 1.0
SB.cb.attach.offset.y = 2.0
SB.cb.attach.offset.z = 0.0
##################################################################
# Parameters affecting the missle while flying.
##################################################################
# Missle acceleration.
SB.cb.fly.accel = 6.0
# Max missle velocity.
SB.cb.fly.max_vel = 12.0
# Field-of-view angle while flying.
SB.cb.fly.fov = 100.0
# Maximum time the missle can be in the air.
SB.cb.fly.live_time = 6.0
##################################################################
# Rotational flying parameters.
##################################################################
# Horizontal turn speed.
SB.cb.fly.turn.xdelta = 5.0
# Vertical turn speed.
SB.cb.fly.turn.ydelta = 4.0
# Speed at which horizontal rotation decays. 0 to 1. A value of 0 never
# stops turning, and a value of 1 stops immediately.
SB.cb.fly.turn.xdecay = 0.99
# Speed at which vertical rotation decays. 0 to 1. A value of 0 never
# stops turning, and a value of 1 stops immediately.
SB.cb.fly.turn.ydecay = 0.99
# The vertical rotation boundary. 0 to 1. A value of 0 allows no
# vertical rotation, and a value of 1 allows completely vertical rotation.
SB.cb.fly.turn.ybound = 0.6
# The fraction of turn speed applied to roll. A positive value rolls into
# the turn, a negative value rolls out of the turn, and a 0 value does not
# roll at all.
SB.cb.fly.turn.roll_frac = 0.2
##################################################################
# Parameters affecting collision distance.
##################################################################
# Minimum distance to hit a non-enemy, non-environment object.
SB.cb.fly.hit_dist.object = 0.2
# Minimum distance to hit an enemy.
SB.cb.fly.hit_dist.enemy = 0.2
# Minimum distance to hit the environment.
SB.cb.fly.hit_dist.env = 0.2
##################################################################
# Parameters affecting the explosion state.
##################################################################
# Delay before returning to player after explosion. *Incomplete.
SB.cb.explode.wait_time = 1.0



#--------------------------------------------------------------------------------
# PATRICK SETTINGS
#--------------------------------------------------------------------------------
# Speed values for character. First value is minimum speed character can move,
# any less than that and character turns in place. First to second is the walking
# range, second to third is running range. The last 3 numbers are the
# corresponding stick deflections for those speeds.
#
Patrick.MoveSpeed = 0.6,2.5,5, 0.1,0.6,1.0

# Anim speed values, first value is nominal movement speed of animation
# assuming animation playing at normal speed. The next two values are
# the minimum and maximum allowable speed the animation will play at.
#
Patrick.AnimSneak = 1.5, .5, 2.5
Patrick.AnimWalk = 1.5, .5, 2.5
Patrick.AnimRun = 3.0, .5, 2.5

# Airborne parameters
Patrick.JumpGravity = 5
Patrick.GravSmooth = 0.2
Patrick.FloatSpeed = 3
Patrick.ButtsmashSpeed = 24

# Jump parameters
Patrick.Jump = 1.5, 0.1, 0.1
Patrick.Double = 1.5, 0.1, 0.1
Patrick.Bounce = 2, 0.3, 0.0
Patrick.Spring = 3.5, 0.3, 0.0

# Ledge hanging parameters
Patrick.Ledge.animGrab = 3


#--------------------------------------------------------------------------------
# SANDY SETTINGS
#--------------------------------------------------------------------------------
# Speed values for character. First value is minimum speed character can move,
# any less than that and character turns in place. First to second is the walking
# range, second to third is running range. The last 3 numbers are the
# corresponding stick deflections for those speeds.
#
Sandy.MoveSpeed = 0.6,2.5,5, 0.1,0.6,1.0

# Anim speed values, first value is nominal movement speed of animation
# assuming animation playing at normal speed. The next two values are
# the minimum and maximum allowable speed the animation will play at.
#
Sandy.AnimSneak = 1.5, .5, 2.5
Sandy.AnimWalk = 1.5, .5, 2.5
Sandy.AnimRun = 3.0, .5, 2.5

# Airborne parameters
Sandy.JumpGravity = 5
Sandy.GravSmooth = 0.2
Sandy.FloatSpeed = 3
Sandy.ButtsmashSpeed = 24

# Jump parameters
Sandy.Jump = 1.5, 0.1, 0.1
Sandy.Double = 1.5, 0.1, 0.1
Sandy.Bounce = 2, 0.3, 0.0
Sandy.Spring = 3.5, 0.3, 0.0

# Ledge hanging parameters
Sandy.Ledge.animGrab = 3


#--------------------------------------------------------------------------------
# PLAYER OUT-OF-BOUNDS STATE SETTINGS
#--------------------------------------------------------------------------------

# Time in seconds the player can be out of bounds. Range: greater than 0.
#player.state.out_of_bounds.out_time = 9.0
# Time in seconds required before out-of-bounds timer resets. Range: greater
# than 0, less than out_time.
#player.state.out_of_bounds.reset_time = 3.0
# Distance of camera from player.
#player.state.out_of_bounds.cam_dist = 3.0
# Height of camera above player.
#player.state.out_of_bounds.cam_height = 1.0
# Time it takes the camera to reorient itself to zoom in and face SB.
#player.state.out_of_bounds.reorient_time = 0.25
# The resource identifier of the model.
#player.state.out_of_bounds.hand_model = hand

# Settings affecting how the hand moves while grabbing the player.
#########################
# The max velocity of the hand as it comes in. Range: greater than 0.
#player.state.out_of_bounds.grab.in_vel = 1.0
# The distance required for the hand to stop, as a fraction of the screen.
# Controls how suddenly the hand stops. Range: 0 to 1.
#player.state.out_of_bounds.grab.in_stop_dist = 0.05
# The amount of time the hand waits before moving back out.
#player.state.out_of_bounds.grab.wait_time = 0.5
# The max velocity of the hand as it goes out. Range: greater than 0.
#player.state.out_of_bounds.grab.out_vel = 0.5
# The distance required for the hand to reach max velocity as it goes out,
# as a fraction of the screen. Controls how suddenly the hand starts moving.
# Range 0 to 1.
#player.state.out_of_bounds.grab.out_start_dist = 0.1
# On-screen position of the hand. This position is in 0 to 1 screen
# coordinates, with (0, 0) at the top left and positive y going down.
#player.state.out_of_bounds.grab.in_x = 0.0
#player.state.out_of_bounds.grab.in_y = -0.25
# The time that elapses before fade-out starts.
#player.state.out_of_bounds.grab.fade_start_time = 2.0
# The time required to fade to black.
#player.state.out_of_bounds.grab.fade_time = 0.5

# Settings affecting how the hand moves while dropping the player.
########################
# The max velocity of the hand as it comes in. Range: greater than 0.
#player.state.out_of_bounds.drop.in_vel = 0.5
# The distance required for the hand to stop, as a fraction of the screen.
# Controls how suddenly the hand stops. Range: 0 to 1.
#player.state.out_of_bounds.drop.in_stop_dist = 0.1
# The amount of time the hand waits before moving back out.
#player.state.out_of_bounds.drop.wait_time = 0.5
# The max velocity of the hand as it goes out. Range: greater than 0.
#player.state.out_of_bounds.drop.out_vel = 1.0
# The distance required for the hand to reach max velocity as it goes out,
# as a fraction of the screen. Controls how suddenly the hand starts moving.
# Range 0 to 1.
#player.state.out_of_bounds.drop.out_start_dist = 0.05
# On-screen position of the hand. This position is in 0 to 1 screen
# coordinates, with (0, 0) at the top left and positive y going down.
#player.state.out_of_bounds.drop.in_x = 0.0
#player.state.out_of_bounds.drop.in_y = -0.25
# The time that elapses before fading back in.
player.state.out_of_bounds.drop.fade_start_time = 0.2
# The time required to fade in from black.
#player.state.out_of_bounds.drop.fade_time = 0.5

# Starting position of the hand, outside the screen rectangle.
#player.state.out_of_bounds.out_y = -1.0
# Size scaling fractions.
#player.state.out_of_bounds.hand_size_x = 0.5
#player.state.out_of_bounds.hand_size_y = 0.5
# Rotation of the hand, expressed as yaw, pitch, and roll.
#player.state.out_of_bounds.hand_yaw = 0.0
#player.state.out_of_bounds.hand_pitch = 0.0
#player.state.out_of_bounds.hand_roll = 180.0


#--------------------------------------------------------------------------------
# SPONGEBOB UNDERWEAR-BUNGEE SETTINGS
#--------------------------------------------------------------------------------
# Uncomment any to change the default values.

# The bottom fraction of the total distance for which the bottom apex animation
# plays. Between 0 and 0.5
#SB.state.bungee.bottom_anim_frac = 0.05
# The top fraction of the total distance for which the bottom apex animation
# plays. Between 0 and 0.5
#SB.state.bungee.top_anim_frac = 0.1
# Transition time going between bottom and normal animations.
#SB.state.bungee.bottom_anim_time = 0.1
# Transition time going between top and normal animations.
#SB.state.bungee.top_anim_time = 0.1
# Transition time going between hit and normal animations.
#SB.state.bungee.hit_anim_time = 0.1
# Multiplier affecting rotation induced when spongebob takes damage.
#SB.state.bungee.damage_rot = 10.0
# Time in seconds to delay before restarting after death.
#SB.state.bungee.death_time = 3.0
# Velocity-based blur intensity. Increase to blur more. 0 to 1 range.
#SB.state.bungee.vel_blur = 0.0
# Distance from camera at which the bungee cord fades in. 1 or higher.
#SB.state.bungee.fade_dist = 2.0
# Radius of the player, while bungeeing.
#SB.state.bungee.player_radius = 1.0

# Constants affecting the player's movement on the horizontal(x/z) plane.
########################
# Padding around the edges of the player's movement. Increase this to ensure
# that the player is able to reach all the way to the edges. I.e. since the
# analog control pad does not go all the way to the extremes, increase this value
# to narrow the control pad extremes. Valid values are between 0 and 0.25.
#SB.state.bungee.horizontal.edge_zone = 0.05
# Horizontal sway force. The higher this is, the easier it is for the player to
# move.
#SB.state.bungee.horizontal.sway = 3.0
# The movement decay factor. Controls how much of the movement velocity is
# kept per frame. Valid values are in the range 0 to 1,
#SB.state.bungee.horizontal.decay = 0.95

# Constants affecting the dive action.
########################
# Time during which a dive accelerates. This value also specifies how quickly
# SB animates into a dive.
#SB.state.bungee.dive.time = 0.5
# Specifies how long it takes for the dive to animate from the dive animation to
# the normal cycle animation. This does not effect the time spent accelerating
# downward.
#SB.state.bungee.dive.anim_out_time = 0.5
# The minimum and maximum distance between which the dive can take place,
# expressed as a fraction of the player's vertical range. For instance, if
# min_dist is .1, max_dist is .6, and the player's vertical movement is between
# 10 and 110 meters from the hook, the player may dive at any time while between
# 20 (10 + 100*.1) and 70 (10 + 100*.6) meters from the hook. Note that the
# maximum distance must be greater than .5, since the player's rest position is
# at .5, otherwise a dive would not be possible from a complete stop..
#SB.state.bungee.dive.min_dist = 0.0
#SB.state.bungee.dive.max_dist = 0.6

# Playback options:
# PlaybackMode: 0 - off, 1 - record, 2 - play, 3 - play and dump frames
# PlaybackFile: sets the filename to dump playback data into
# ScreenDumpPath sets the folder to dump into (for example, "c:\sb\dump\")
# ScreenDumpStartFrame and ScreenDumpEndFrame set a frame range to dump
# ForceCinematic: if > 0, plays the nth cinematic in the scene
#
# To record:
# 1) Set PlaybackMode to 1
# 2) Run the game (controller data will be saved internally)
# 3) If you are happy with the recording, press triangle/Y on the debug
# controller -- this will write the data to the PlaybackFile
# 4) Rerun the game with PlaybackMode set to 2 or 3 to play or play/dump the frames
PlaybackMode=0
PlaybackFile=test.pbk
ScreenDumpPath=c:\sb\dump\
ScreenDumpStartFrame=0
ScreenDumpEndFrame=65535
ForceCinematic=0


#--------------------------------------------------------------------------------
# ScrFX Settings
#--------------------------------------------------------------------------------
ScrFxLetterBoxSize = 32.0 # y pixel height for each bar (top and bottom)
ScrFxLetterBoxAlpha = 255 # 255 opaque, 0 completely transparent


____________________
a

NWPlayer123
Posted on 02-10-13 07:49 PM Link | #14736
Posted by Fiachra
Normal character files for Battle for Bikini Bottom are stored as RenderWare .dff models (see here http://www.spriters-resource.com/community/showthread.php?tid=20770). SDF may be a compressed version of this. If it is compressed it probably uses some variant of the LZW algorithm. It may also be some format used by the RenderWare engine.

You are correct, it is renderware.

____________________
"I hate playing musical chats" ~ Quote of the month

MK7tester
Posted on 02-10-13 07:54 PM Link | #14737
Argh these gamefiles are so unorganized.


So apparently abbreviations mark level folders like the KF folder is Kelp Forest stuff.

shibboleet
Posted on 02-10-13 07:54 PM Link | #14738
oohhh....
That's actually pretty handy to know :P

____________________
a

MK7tester
Posted on 02-10-13 07:56 PM (rev. 6 of 02-10-13 08:13 PM) Link | #14739
So here are the level folders then

hb - Hub Bikini Bottom
bb - Downtown Bikini Bottom
jf - Jellyfish Field
??? - Downtown Bikini Bottom
gl - Goo Lagoon
rb - Rock Bottom
ml - Mermalair?
sm - Sand Mountain?
kf - Kelp Forest
gy - Dutchman Graveyard
db - Spongebob Dream
b1 - Bosslvl1
b2 - Bosslvl2
b3 - Bosslvl3
bc - I have no idea, says "barnacle cave" which might be the Mermalair

NWPlayer123
Posted on 02-10-13 08:25 PM (rev. 2 of 02-10-13 08:26 PM) Link | #14744
Apparently the LIP LOP HIP HOP files are archives and shit.
The LOPs can be viewed using notepad, they're basically a text file, the HOP ones are the archives, they're uncompressed but since we know nothing about archives or nodes, this will be a challenge.
EDIT: The HIP and HOPs both deal with archives, adn the LIP and LOP files are the text. It's somehow all one package tho.

____________________
"I hate playing musical chats" ~ Quote of the month

shibboleet
Posted on 02-10-13 08:27 PM Link | #14745
Same as well, but we need to extract a folder called "sb"

Because it holds everything :P

____________________
a

Arisotura
Posted on 02-10-13 08:27 PM Link | #14746
Time to learn about reverse-engineering, guys!

____________________
NSMBHD - Kafuka - Jul
melonDS the most fruity DS emulator there is

zafkflzdasd

MK7tester
Posted on 02-10-13 08:37 PM (rev. 3 of 02-10-13 08:44 PM) Link | #14755
Ok guys, to make this more simple, here are all the enemies:
Largeimage

[image]

Makes stuff like this easy to figure out:
ZNPC_AnimTable_Test
ZNPC_AnimTable_Dutchman
ZNPC_AnimTable_Duplotron
ZNPC_AnimTable_Common
ZNPC_AnimTable_BossPlankton
ZNPC_AnimTable_BossSandy
ZNPC_AnimTable_SleepyTime
ZNPC_AnimTable_BossSandyHead
ZNPC_AnimTable_Hammer
ZNPC_AnimTable_TTSauce
ZNPC_AnimTable_KingJelly
ZNPC_AnimTable_Slick
ZNPC_AnimTable_TarTar
ZNPC_AnimTable_Villager
ZNPC_AnimTable_BalloonBoy
ZNPC_AnimTable_Fodder
ZNPC_AnimTable_Prawn
ZNPC_AnimTable_Neptune
ZNPC_AnimTable_BossSB1
ZNPC_AnimTable_BossSBobbyArm
ZNPC_AnimTable_Monsoon
ZNPC_AnimTable_ArfDog
ZNPC_AnimTable_ArfArf
ZNPC_AnimTable_BossSB2
ZNPC_AnimTable_Tiki
ZNPC_AnimTable_Tubelet
ZNPC_AnimTable_Ambient
ZNPC_AnimTable_GLove
ZNPC_AnimTable_LassoGuide
ZNPC_AnimTable_Chuck
ZNPC_AnimTable_Jelly
ZNPC_AnimTable_SuperFriend
ZNPC_AnimTable_BossPatrick


Main - Misc. ROM hacking - Battle for Bikini Bottom Hacking Information Hide post layouts | New reply

Page rendered in 0.313 seconds. (2048KB of memory used)
MySQL - queries: 27, rows: 223/223, time: 0.017 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.