Skip to content

Instantly share code, notes, and snippets.

@bsmt
Last active October 16, 2024 15:09
Show Gist options
  • Save bsmt/3cc58e2498931b953809947f3849414e to your computer and use it in GitHub Desktop.
Save bsmt/3cc58e2498931b953809947f3849414e to your computer and use it in GitHub Desktop.
meta:
id: sly4_save
title: Sly Cooper - Thieves In Time save file
file-extension: bin
endian: be
doc: |
Incomplete definition for Sly 4 save files.
Most of the basic cheating things are defined.
You can get:
- All thiefnet items
- Unlimited coins
- All bottles
- All masks
- All treasure
For RPCS3, save files are in dev_hdd0\home\00000001\savedata
instances:
coins:
pos: 0x20
type: s4
doc: |
Max the game will allow is 999999.
# no bottles for world1 (paris)
bottle_bitmap_world2: # bottles for japan level. max is 30
pos: 0x38
type: bottle_bitmap
bottle_bitmap_world3: # bottles for world3 (TODO). max is 30
pos: 0x3c
type: bottle_bitmap
bottle_bitmap_world4: # bottles for world4 (TODO)
pos: 0x40
type: bottle_bitmap
bottle_bitmap_world5: # bottles for world5 (TODO)
pos: 0x44
type: bottle_bitmap
mask_bitmap_world1: # mask(s) for paris level. max is 1
pos: 0x64
type: mask_bitmap
mask_bitmap_world2: # masks for japan level. max is 11
pos: 0x66
type: mask_bitmap
mask_bitmap_world3: # masks for old west level. max is 11
pos: 0x68
type: mask_bitmap
mask_bitmap_world4: # masks for world4 (TODO)
pos: 0x6a
type: mask_bitmap
mask_bitmap_world5: # masks for world5 (TODO)
pos: 0x6c
type: mask_bitmap
treasure_bitmap_world2: # treasures for japan level. max is 12
pos: 0x7e
type: treasure_bitmap
treasure_bitmap_world3: # treasures for old west level. max is 12
pos: 0x80
type: treasure_bitmap
treasure_bitmap_world4: # treasures for world4 (TODO)
pos: 0x82
type: treasure_bitmap
treasure_bitmap_world5: # treasures for world5 (TODO)
pos: 0x84
type: treasure_bitmap
save_counter_maybe: # TODO
pos: 0x143
type: u1
safe_item_related: # TODO
pos: 0x1a5
type: u1
doc: |
went from 0xa8 to 0xab when unlocking first safe item in japan - coopergiwa's gold magnet
safe_item_related2:
pos: 0x1a8
type: u1
doc: |
went from 88 to 8b when unlocking second safe item in old west
thiefnet_items_sly:
pos: 0xf6c
type: sly_items
thiefnet_items_murray:
pos: 0xf7c
type: murray_items
thiefnet_items_bentley:
pos: 0xf90
type: bentley_items
thiefnet_items_carmelita: # TODO: is this carmelita?
pos: 0xfa2
type: carmelita_items
types:
sly_items:
seq:
- id: item_paraglider
type: u1
enum: thiefnet_item_state
- id: item_cane_swat_combo
type: u1
enum: thiefnet_item_state
- id: item_mega_charge_attack
type: u1
enum: thiefnet_item_state
- id: item_silent_obliteration
type: u1
enum: thiefnet_item_state
- id: item_rail_sprint
type: u1
enum: thiefnet_item_state
- id: item_steerable_cane_spin
type: u1
enum: thiefnet_item_state
- id: item_smoke_bomb
type: u1
enum: thiefnet_item_state
- id: item_meter_recharger
type: u1
enum: thiefnet_item_state
- id: item_run_while_charging
type: u1
enum: thiefnet_item_state
- id: item_flash_bomb
type: u1
enum: thiefnet_item_state
- id: item_moving_pickpocket
type: u1
enum: thiefnet_item_state
- id: item_sprint_while_charging
type: u1
enum: thiefnet_item_state
- id: item_cane_push
type: u1
enum: thiefnet_item_state
- id: item_paraglider_dive_attack
type: u1
enum: thiefnet_item_state
- id: item_silent_sprint
type: u1
enum: thiefnet_item_state
- id: item_air_smash
type: u1
enum: thiefnet_item_state
murray_items:
seq:
- id: item_elbow_el_dropo_combo
type: u1
enum: thiefnet_item_state
- id: item_mega_charge_attack
type: u1
enum: thiefnet_item_state
- id: item_el_dropo
type: u1
enum: thiefnet_item_state
- id: item_looty_shake
type: u1
enum: thiefnet_item_state
- id: item_steerable_fist_spin
type: u1
enum: thiefnet_item_state
- id: clothesline
type: u1
enum: thiefnet_item_state
- id: item_juggernaut_throw
type: u1
enum: thiefnet_item_state
- id: item_fists_of_flame
type: u1
enum: thiefnet_item_state
- id: item_run_while_charging
type: u1
enum: thiefnet_item_state
- id: item_raging_inferno_flop
type: u1
enum: thiefnet_item_state
- id: item_light_as_a_feather
type: u1
enum: thiefnet_item_state
- id: item_dukes_of_dynamite
type: u1
enum: thiefnet_item_state
- id: item_sprint_while_charging
type: u1
enum: thiefnet_item_state
- id: item_clothesline_a_lo_macho
type: u1
enum: thiefnet_item_state
- id: item_diablo_fire_slam
type: u1
enum: thiefnet_item_state
- id: item_licks_of_lightning
type: u1
enum: thiefnet_item_state
- id: item_cuffs_of_confusion
type: u1
enum: thiefnet_item_state
- id: item_meter_recharger
type: u1
enum: thiefnet_item_state
- id: item_mega_stomp
type: u1
enum: thiefnet_item_state
- id: item_el_dropo_a_lo_macho
type: u1
enum: thiefnet_item_state
bentley_items:
seq:
- id: item_sleep_ammo
type: u1
enum: thiefnet_item_state
- id: item_adrenaline_burst
type: u1
enum: thiefnet_item_state
- id: item_bomb_kick
type: u1
enum: thiefnet_item_state
- id: item_shock_ammo
type: u1
enum: thiefnet_item_state
- id: item_trigger_bomb
type: u1
enum: thiefnet_item_state
- id: item_heat_seeking
type: u1
enum: thiefnet_item_state
- id: item_confusion_ammo
type: u1
enum: thiefnet_item_state
- id: item_multi_bomb
type: u1
enum: thiefnet_item_state
- id: item_throwing_shield
type: u1
enum: thiefnet_item_state
- id: item_bomb_blast_20
type: u1
enum: thiefnet_item_state
- id: item_shrink_ammo
type: u1
enum: thiefnet_item_state
- id: item_scorching_hover_pack
type: u1
enum: thiefnet_item_state
- id: item_bomb_drop_20
type: u1
enum: thiefnet_item_state
- id: item_bend_it_like_bentley
type: u1
enum: thiefnet_item_state
- id: item_homing_darts
type: u1
enum: thiefnet_item_state
- id: item_meter_recharger
type: u1
enum: thiefnet_item_state
- id: item_adrenaline_burst_plus
type: u1
enum: thiefnet_item_state
- id: item_moving_pickpocket
type: u1
enum: thiefnet_item_state
carmelita_items:
seq:
- id: item_auto_fire
type: u1
enum: thiefnet_item_state
- id: item_charge_shot
type: u1
enum: thiefnet_item_state
- id: item_stun_shot
type: u1
enum: thiefnet_item_state
- id: item_triple_shot
type: u1
enum: thiefnet_item_state
- id: item_super_jump
type: u1
enum: thiefnet_item_state
bottle_bitmap:
seq:
- id: bitmap
type: b32
doc: |
Bottle state is stored as a bitmap per-level,
where each unique bottle in a level
has a single 1 or 0 to denote its captured state.
0 = Not captured
1 = captured
So, to capture all bottles, set the bitmap to all 1s (0xFFFFFFFF).
mask_bitmap:
seq:
- id: bitmap
type: b16
doc: |
Mask state is identical to bitmaps, except less space is needed.
treasure_bitmap:
seq:
- id: bitmap
type: b16
doc: |
Treasure state is identical to mask bitmaps.
enums:
thiefnet_item_state:
0:
id: not_available
2:
id: unknown_not_available
1:
id: available_not_purchased
3:
id: available_and_purchased
@damario123
Copy link

Yo please try the sly collection or the sly trilogy ps3 everything gadgets unlimited uses max coins all gadgets unlocked from the start aswell

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment