NSA: Difference between revisions

From Game Research Wiki
Jump to navigation Jump to search
No edit summary
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Archives]]
[[Category:Archives]]
Used in the following games:
This is a [[NScripter]] archive format.
* みずいろ (Mizuiru)
 
Note: extension may be renamed in other games. *.NS2, *.SRA. May need to merge pages and use redirects to this page.


== Structure ==
== Structure ==
Line 13: Line 10:
| 2Bytes || Number of files ||  
| 2Bytes || Number of files ||  
|-
|-
| 4Bytes || Data Start Offset ||  
| 4Bytes || Index Size ||  
|-
|-
!colspan="15"|Index
!colspan="15"|Index
Line 19: Line 16:
! Size !! Content !! Description
! Size !! Content !! Description
|-
|-
| Length+2Bytes || File name || '00 00' follows name.
| (Length)+1Byte || File name || Terminated with 0x00
|-
| 1Bytes || Compress Switch || 00=false 01=true 02=wtf
|-
|-
| 4Bytes || Unknown1 ||
| 4Bytes || Offset ||
|-
|-
| 4Bytes || Unknown2 ||
| 4Bytes || Compressed Size ||
|-  
|-  
| 4Bytes || Unknown3 ||
| 4Bytes || Uncompressed Size ||
|}
|}
Note: All numbers are big endian.
Note: All numbers are big endian.
== Research ==
{| class="wikitable"
!colspan="15"|First 5 Index Entries for 'arc.nsa' of みずいろ
|-
! Index Size !! Filename !! Offset !! Filesize1 !! Filesize2
|-
| 22bytes || b\00.jpg || 0 || 155636 || 155636
|-
| 23bytes || b\001.jpg || 155636 || 140467 || 140467
|-
| 22bytes || b\01.jpg || 296103 || 169994 || 169994
|-
| 22bytes || b\01.jpg || 466097 || 136249 || 136249
|-
| 22bytes || b\05.jpg || 602346 || 150570 || 150570
|}
Two file sizes suggest the archive supports compression. However in this case, it does not appear to be used due to same size for both filesize values. Compression method is unknown, if actually supported. Due to how the format is structured, the full index must be processed from start to end since each index entry is not a fixed size. Full index size is known, however, so can be done with single read into buffer. Then processed, however it means the full index is always loaded in memory. PC game so that doesn't really matter.
== Tools ==
-n/a-

Latest revision as of 18:08, 4 August 2024

This is a NScripter archive format.

Structure

Header
Size Content Description
2Bytes Number of files
4Bytes Index Size
Index
Size Content Description
(Length)+1Byte File name Terminated with 0x00
1Bytes Compress Switch 00=false 01=true 02=wtf
4Bytes Offset
4Bytes Compressed Size
4Bytes Uncompressed Size

Note: All numbers are big endian.

Research

First 5 Index Entries for 'arc.nsa' of みずいろ
Index Size Filename Offset Filesize1 Filesize2
22bytes b\00.jpg 0 155636 155636
23bytes b\001.jpg 155636 140467 140467
22bytes b\01.jpg 296103 169994 169994
22bytes b\01.jpg 466097 136249 136249
22bytes b\05.jpg 602346 150570 150570

Two file sizes suggest the archive supports compression. However in this case, it does not appear to be used due to same size for both filesize values. Compression method is unknown, if actually supported. Due to how the format is structured, the full index must be processed from start to end since each index entry is not a fixed size. Full index size is known, however, so can be done with single read into buffer. Then processed, however it means the full index is always loaded in memory. PC game so that doesn't really matter.

Tools

-n/a-