Skip to content

Instantly share code, notes, and snippets.

@qguv
Created July 1, 2025 15:16
Show Gist options
  • Save qguv/43531167080c1f941ca8cd8fd77c2bdf to your computer and use it in GitHub Desktop.
Save qguv/43531167080c1f941ca8cd8fd77c2bdf to your computer and use it in GitHub Desktop.
nanoloop two savefile spec (Kaitai format)
meta:
id: nl2
title: nanoloop two save file
file-extension:
- nl2
ks-version: 0.9
endian: be
seq:
- id: data_blocks
type: block
size: 0x100
repeat: expr
repeat-expr: 60
- id: metadata_block
type: block
size: 0x100
- id: empty
size: 0x2ff
- id: checksum
type: u1
instances:
song_name_raw:
value: |
metadata_block.name
file_position:
value: |
metadata_block.file_position
file_version:
value:
metadata_block.file_version
types:
block:
seq:
- id: magic0
contents: [0x24, 0xdb]
- id: channel
type: u1
enum: channel_t
- id: column
type: u1
- id: file_position
type: u1
- id: unknown0
size: 11
- id: name
type: u1
enum: text_t
repeat: expr
repeat-expr: 8
- id: file_version
size: 3
type: str
encoding: ascii
- id: unknown1
size: 5
- id: data
size-eos: true
enums:
channel_t:
0: r
1: l
2: s
3: n
4: metadata
text_t:
0: 'space'
1: 'num_0'
2: 'num_1'
3: 'num_2'
4: 'num_3'
5: 'num_4'
6: 'num_5'
7: 'num_6'
8: 'num_7'
9: 'num_8'
10: 'num_9'
11: a
12: b
13: c
14: d
15: e
16: f
17: g
18: h
19: i
20: j
21: k
22: l
23: m
24: n
25: o
26: p
27: q
28: r
29: s
30: t
31: u
32: v
33: w
34: x
35: y
36: z
0x61: special_a
0x6c: special_l
0x6e: special_n
0x6f: special_o
0x70: special_p
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment