SVE File Format - OpenSMSG/OpenSMSG GitHub Wiki

NOTE: This page is a WIP and is in constant update. This note will be removed when everything is sorted out.

This is the file format dedicated to SMSG save games. from a cursory look there does not appear to be any sort of compression applied to these files.

Blocks

The save format is split into various parts which I refer to as "blocks".

Title Block (0x00..0x64)

This block is the home of the basic information about the course in text. It has a length of 100 bits and there are two parts to this which are outlined below.

Note: There is a hard cutoff at 100 bits (0x64) for this space. As a result the 'Generic Save Text` is often cut off at the end of the block.

Course Save File Name

The format for this is [course name] + [save date]. This does not appear to be the name you entered when saving the course but the system generated default name of the course. The file name can be different from this without affecting the save. Any text after this appears to be padding which .

Course Information Block (0x65..0x2A8)

This Block contains information similar to that found in the SRF File Format. This is the first block found in .SVE files and is seen when loading the course from the loading screen.

Data Name Location (h) Data Type
Total Yards 0x6C..0x6D Int32
Total Par 0x70..0x73 Int32
Total Holes 0x74..0x78 Int32
Fun Rating 0x75..0x76 Int
Length Skill 0x7D 1
Accuracy Skill 0x81 1
Imagination 0x85 1
Cash 0x99..0x9C Int32
Course type
Theme used
Designer name
Record holder
Skill rating

##Hole Data (0x2A9..0x?) This clock contains a few pieces of info regarding each hole on the course. It seems that you cant just copy a "hole info block" of data and erroneously append fake holes to the save.

Parameter Offset (Hex) Size (Bytes) Min Value (Dec/Hex) Max Value (Dec/Hex)
Hole Par 0x0 1 0 (0x0) 127 (0x7F)
Hole Length 0x4..0x5 2 0 (0x0) 32768 (0x7FFF)

Course Tiles Block (0x2941..0x?)

Texture Name Hex Dec
Tee Box 0x00 0
Hole/Green 0x01 1
Fairway 0x02 2
Firm Fairway 0x03 3
Rough 0x04 4
Deep Rough 0x05 5
??? 0x06 6
Bunker 0x07 7
Waste Bunker 0x08 8
Pot Bunker 0x09 9
Stream 0x0A 10
Brush 0x0B 11
Rocks 0x0C 12
Tree #1 0x0D 13
Tree #2 0x0E 14
Tree #3 0x0F 15
Scenic Tree 0x10 16
Water 0x11 17
Wetlands[1] 0x12 18
Alt. Stream? 0x13 19
Blank* 0x14 20
??? 0x15 21
Building Base 0x16 22
Course Data Name Location
Tiles 0x2941..0x3304
Unknown 0x5051..??????
Unknown 0x44445..0x44E08
Unknown 0x46BC1..0x47584

Tiles Block (0x2941..0x3304)

The ordering for the course data in this block starts on the west most tile and then lists each of the 32 tiles south-west of that until you reach the southern most tile in that row. Each consecutive row is to the north-east of the prior row and starts at the north-west most tile and goes 32 tiles south-west of that. Each row is listed one after See the image below for a far better visual representation of this.

Map Data Layout

Clubhouse Players

These are the players which are currently in the clubhouse or

Players Block

This block seems to hold all players That will play on the course initially. Included in this is the player's:

  • Profession
  • Name

Misc. Block

The theme used in the course and the

Data Name Location Notes
Theme 0x45923 The length of this segment is as long as the string is.
Top 10 Golfers 0x4598b The Length of this is the top 10 names with an empty bit between each.