patterns/fas/was: Update FAS, WAS/WA3 pattern files and README.md (#425)

* Add .fas and .was pattern files (Oska DeskMates)

* Update .was pattern file

* Update .was/.wa3 pattern file

* Update README.md

* Update README.md

* Update .fas & .was pattern files

* Update README.md

* Update fas_oskasoftware_old.hexpat

* Added WAS test file

* Update WAS test file

* Update was_oskasoftware.hexpat

* Update was_oskasoftware.hexpat

* Update fas_oskasoftware_old.hexpat

* Update fas_oskasoftware.hexpat

* Update README.md

Replacing backward slashes with forward ones in the `WAS` row.

* Update fas_oskasoftware_old.hexpat

* Update was_oskasoftware.hexpat
This commit is contained in:
DmitriLeon2000
2025-08-31 11:28:45 +02:00
committed by GitHub
parent 74c06b74f7
commit 76f850c543
4 changed files with 42 additions and 43 deletions

View File

@@ -191,7 +191,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi
| VHDX | | [`patterns/vhdx.hexpat`](patterns/vhdx.hexpat) | Microsoft Hyper-V Virtual Hard Disk format | | VHDX | | [`patterns/vhdx.hexpat`](patterns/vhdx.hexpat) | Microsoft Hyper-V Virtual Hard Disk format |
| VOX | | [`patterns/vox.hexpat`](patterns/vox.hexpat) | MagicaVoxel scene description format | | VOX | | [`patterns/vox.hexpat`](patterns/vox.hexpat) | MagicaVoxel scene description format |
| WAV | `audio/x-wav` | [`patterns/wav.hexpat`](patterns/wav.hexpat) | RIFF header, WAVE header, PCM header | | WAV | `audio/x-wav` | [`patterns/wav.hexpat`](patterns/wav.hexpat) | RIFF header, WAVE header, PCM header |
| WAS | | [`patterns\was_oskasoftware.hexpat`](patterns\was_oskasoftware.hexpat) | Oska Software DeskMates WAS/WA3 (WAVE/MP3 Set) file | WAS | | [`patterns/was_oskasoftware.hexpat`](patterns/was_oskasoftware.hexpat) | Oska Software DeskMates WAS/WA3 (WAVE/MP3 Set) file
| WAD | | [`patterns/wad.hexpat`](patterns/wad.hexpat) | DOOM WAD Archive | | WAD | | [`patterns/wad.hexpat`](patterns/wad.hexpat) | DOOM WAD Archive |
| WebP | `image/webp` | [`patterns/webp.hexpat`](patterns/webp.hexpat) | Google WebP image | | WebP | `image/webp` | [`patterns/webp.hexpat`](patterns/webp.hexpat) | Google WebP image |
| XBEH | `audio/x-xbox-executable` | [`patterns/xbeh.hexpat`](patterns/xbeh.hexpat) | Xbox executable | | XBEH | `audio/x-xbox-executable` | [`patterns/xbeh.hexpat`](patterns/xbeh.hexpat) | Xbox executable |

View File

@@ -1,5 +1,5 @@
#pragma author DmitriLeon2000 #pragma author DmitriLeon2000
#pragma description Oska Software DeskMates FAS (Frames and Sequences) file #pragma description Oska Software DeskMates FAS (Frames and Sequences)
#pragma endian little #pragma endian little
enum Compression : u32 { enum Compression : u32 {
@@ -69,7 +69,7 @@ struct SeqHeader {
}; };
struct Bitmap { struct Bitmap {
u8 byte[fas.fasHeader.version >= 3 ? fas.fasHeader.frameSize + (fas.frameSizeHigh << 16) : fas.fasHeader.frameSize]; u8 byte[parent.fasHeader.version >= 3 ? parent.fasHeader.frameSize + (parent.frameSizeHigh << 16) : parent.fasHeader.frameSize] [[sealed]];
}; };
struct FramesHeader { struct FramesHeader {
@@ -105,7 +105,7 @@ struct FAS {
u8 filenameChecksum; // a checksum for a filename in ASCII u8 filenameChecksum; // a checksum for a filename in ASCII
AnimSequence sequences[seqHeader.count]; AnimSequence sequences[seqHeader.count];
FramesHeader framesHeader; FramesHeader framesHeader;
Bitmap framesBitmap[framesHeader.count];
}; };
FAS fas @ 0x00; FAS fas @ 0x00;
Bitmap framesBitmap[fas.framesHeader.count] @ $;

View File

@@ -1,5 +1,5 @@
#pragma author DmitriLeon2000 #pragma author DmitriLeon2000
#pragma description Oska Software DeskMates FAS (Frames and Sequences) file (Oska DeskMate versions 1.3 and 2.06) #pragma description Oska Software DeskMates FAS (Frames and Sequences) (Oska DeskMate 1.03 and 2.06)
#pragma endian little #pragma endian little
enum Compression : u32 { enum Compression : u32 {
@@ -65,8 +65,8 @@ struct SeqHeader {
}; };
struct Frame { struct Frame {
u8 colorBitmap[fas.fasHeader.frameSizeColor]; u8 colorBitmap[parent.fasHeader.frameSizeColor] [[sealed]];
u8 maskBitmap[fas.fasHeader.frameSizeMask]; u8 maskBitmap[parent.fasHeader.frameSizeMask] [[sealed]];
}; };
struct FramesHeader { struct FramesHeader {
@@ -80,8 +80,7 @@ struct FAS {
SeqHeader seqHeader; SeqHeader seqHeader;
AnimSequence sequences[seqHeader.count]; AnimSequence sequences[seqHeader.count];
FramesHeader framesHeader; FramesHeader framesHeader;
Frame frames[framesHeader.count];
}; };
FAS fas @ 0x00; FAS fas @ 0x00;
Frame frames[fas.framesHeader.count] @ $;

View File

@@ -7,8 +7,8 @@ import type.size;
struct Sound { struct Sound {
char name[]; char name[];
u32 length; u32 length;
u8 data[length]; u8 data[length] [[sealed]];
}; } [[name(name), hex::visualize("sound", data, 1, 8000)]];
struct Header { struct Header {
type::Size<u32> size; type::Size<u32> size;