From 16b791157ebcf8aebcfe0900137850d55d972e8c Mon Sep 17 00:00:00 2001 From: Tau Date: Thu, 4 Apr 2019 13:06:04 -0400 Subject: [PATCH] wip settings save mapped --- src/idz/decoder/saveSettings.ts | 17 ++++++++++++++--- src/idz/request/saveSettings.ts | 11 +++++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/idz/decoder/saveSettings.ts b/src/idz/decoder/saveSettings.ts index 3162ef6..33bac11 100644 --- a/src/idz/decoder/saveSettings.ts +++ b/src/idz/decoder/saveSettings.ts @@ -5,15 +5,26 @@ saveSettings.msgCode = 0x00a5 as RequestCode; saveSettings.msgLen = 0x0020; export function saveSettings(buf: Buffer): SaveSettingsRequest { + const pack = buf.readUInt32LE(0x000c); + + console.log("Idz: SETTINGS PACK", pack.toString(16)); + return { type: "save_settings_req", - field_0002: buf.readUInt16LE(0x0002), + bgMusic: buf.readUInt16LE(0x0002), profileId: buf.readUInt32LE(0x0004), dpoint: buf.readUInt32LE(0x0008), - field_000C: buf.readUInt32LE(0x000c), + forceQuitEn: ((pack >> 0) & 1) !== 0, + steeringForce: (pack >> 1) & 15, + bgVolume: (pack >> 5) & 15, + seVolume: (pack >> 9) & 15, + cornerGuide: ((pack >> 13) & 1) !== 0, + lineGuide: ((pack >> 14) & 1) !== 0, + ghostEn: ((pack >> 15) & 1) !== 0, + taResultSkip: ((pack >> 16) & 1) !== 0, field_0010: buf.readUInt8(0x0010), field_0011: buf.readUInt8(0x0011), - field_0012: buf.readUInt8(0x0012), + field_0012: buf.readUInt8(0x0012), // always 5 for some reason field_0013: buf.readUInt8(0x0013), }; } diff --git a/src/idz/request/saveSettings.ts b/src/idz/request/saveSettings.ts index 07a85c2..be256b1 100644 --- a/src/idz/request/saveSettings.ts +++ b/src/idz/request/saveSettings.ts @@ -1,9 +1,16 @@ export interface SaveSettingsRequest { type: "save_settings_req"; - field_0002: number; + bgMusic: number; profileId: number; dpoint: number; // ?? why - field_000C: number; + forceQuitEn: boolean; + steeringForce: number; + bgVolume: number; + seVolume: number; + cornerGuide: boolean; + lineGuide: boolean; + ghostEn: boolean; + taResultSkip: boolean; // TA = Time Attack presumably field_0010: number; field_0011: number; field_0012: number;