flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
baldr 15 Jul 2010, 21:56
bitshifter,
Thunderhawk AH-73M? I have some notes left on its .MAC file format. IIRC, it's big-endian format, starting with two words (width in bytes and height in scanlines), then two bytes follow (bpp and flags). If flags & 2, palette is present as appropriate for bpp number of words in format 0x0RGB. After that, encoded bitmap follows (RLE?), but I can't find the rest of my notes. As for disassembler, IDA is probably the best. |
|||
![]() |
|
vid 15 Jul 2010, 22:06
Also, if the file is packed, there were tons of DOS unpackers for all kinds of packers. Unless it is a custom protection (rare), you have a good chance to find some tool for it.
|
|||
![]() |
|
bitshifter 15 Jul 2010, 23:44
Yes baldr, it is Thunderhawk AH-73M
I took a screenshot of one of the images and found the associated file. Maybe you can make any sense of it? Also, IDA looks good but demo version is 15mb I can only touch a couple megs with my ip speed. (5kbps)
_________________ Coding a 3D game engine with fasm is like trying to eat an elephant, you just have to keep focused and take it one 'byte' at a time. |
|||||||||||
![]() |
|
baldr 16 Jul 2010, 09:21
bitshifter,
The following information can be quite inaccurate: I didn't RE .MAC format completely. Bitmap is stored as interleaved stripes for each of the planes (number of which is indicated in byte 4). If byte at offset 5 has bit 0 set, stripes are compressed using RLE encoding, stored otherwise. RLE compressed stream consists of «command byte» [«data byte(s)»] structures. If command byte<128, data bytes is an array of (command byte+1) literal values. If command byte>128, single data byte is repeated (257-command byte) times. command byte==128 consumes/generates no data and probably used for padding. I remember some issue with word-alignment of stripes (15-byte-wide picture was encoded using 16-byte plane stripes?) and something about encoding/decoding in 40-byte chunks (you may look for ATARI.TXT on fileformat.info, doesn't matter for decoding yourself). Decoded plane stripes are combined (LSB to MSB in order of appearance) to produce 4-bit indices into palette (they don't indeed, it's just the feature of 320×200×4 video mode). Palette-less images (those with bit 1 cleared at offset 5) are probably using current palette. 15 MB is around 1 hour at 5 kBps, is that too long? I remember 2400 bps modems (without error correction) and we've transferred 10+ MB files, long-distance, with them (ahhh, those FIDOnet days!). Anyway, IDA 4.9 can be stripped down (not much, ~50%) by removing non-DOS stuff. If you're interested, let me know. |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.