
該項目包含多種用於反向工程經典Mac OS應用程序和遊戲的工具。
該項目中的工具是:
apt-get install zlibg1-dev 。)cmake . ,然後make 。該項目應適當地基於MacOS和Linux的最新版本。
Resource_dasm是經典Mac OS資源叉的拆卸器。它將資源從任何文件的資源分叉中提取,並將許多經典的Mac OS資源格式(圖像,聲音,文本等)轉換為現代格式。
示例:
將所有資源從特定文件中導出並將其轉換為現代格式(默認情況下,輸出寫入<filename> .out目錄): ./resource_dasm files/Tesserae
從文件夾中的所有文件中導出所有資源,將輸出文件寫入當前目錄中的並行文件夾結構: ./resource_dasm "files/Apeiron ƒ/" ./apeiron.out
以現代和原始格式出口特定資源: ./resource_dasm "files/MacSki 1.7/MacSki Sounds" ./macski.out --target-type=snd --target-id=1023 --save-raw=yes
導出PowerPC應用程序的資源並拆卸其代碼: ./resource_dasm "files/Adventures of Billy" ./billy.out ./m68kdasm --pef "files/Adventures of Billy" ./billy.out/dasm.txt
從Mohawk檔案中導出所有資源: ./resource_dasm files/Riven/Data/a_Data.MHK ./riven_data_a.out --index-format=mohawk
由於跨不同類型的文件系統複製文件,因此您可能會在單獨文件的數據叉中使用文件的資源叉。從此類文件中導出資源: ./resource_dasm "windows/Realmz/Data Files/Portraits.rsf" ./portraits.out --data-fork
創建一個帶有幾個文本的新資源文件,並有幾個文本資源: ./resource_dasm --create --add-resource=TEXT:[email protected] --add-resource=TEXT:[email protected] --add-resource=clut:[email protected] output.rsrc
./resource_dasm file.rsrc --add-resource=TEXT:[email protected] output.rsrc
從現有資源文件中./resource_dasm file.rsrc --delete-resource=TEXT:128 output.rsrc
這並不是所有的資源_DASM都能做到。在沒有任何參數的情況下運行它(或在src/resource_dasm.cc中查看print_usage()以查看所有選項的完整說明。
Resource_dasm可以轉換以下資源類型:
Type | Output format | Notes
------------------------------------------------------------------------
Text resources
bstr | .txt (one file per string) | *3
card | .txt |
finf | .txt (description of contents) |
FCMT | .txt | *3
FONT | .txt (description) and image (one image per glyph) | *E
lstr | .txt | *3
MACS | .txt | *3
minf | .txt | *3
mstr | .txt | *3
mst# | .txt (one file per string) | *3
NFNT | .txt (description) and image (one image per glyph) | *E
PSAP | .txt |
sfnt | .ttf (TrueType font) |
STR | .txt | *3
STR# | .txt (one file per string) | *3
styl | .rtf | *4
TEXT | .txt | *3
TwCS | .txt (one file per string) |
wstr | .txt |
------------------------------------------------------------------------
Image and color resources
actb | image (24-bit) | *E *8
acur | .txt (list of cursor frame IDs) |
cctb | image (24-bit) | *E *8
cicn | image (32-bit and monochrome) | *E
clut | image (24-bit) | *E *8
crsr | image (32-bit and monochrome) | *E *1
CTBL | image (24-bit) | *E
CURS | image (32-bit) | *E *1
dctb | image (24-bit) | *E *8
fctb | image (24-bit) | *E *8
icl4 | image (24 or 32-bit) and .icns | *E *0
icl8 | image (24 or 32-bit) and .icns | *E *0
icm# | image (32-bit) | *E
icm4 | image (24 or 32-bit) | *E *0
icm8 | image (24 or 32-bit) | *E *0
ICN# | image (32-bit) and .icns | *E
icns | image, .png, .jp2, .txt, .plist, .bin, etc. | *E *9
ICON | image (24-bit) | *E
ics# | image (32-bit) and .icns | *E
ics4 | image (24 or 32-bit) and .icns | *E *0
ics8 | image (24 or 32-bit) and .icns | *E *0
kcs# | image (32-bit) | *E
kcs4 | image (24 or 32-bit) | *E *0
kcs8 | image (24 or 32-bit) | *E *0
PAT | image (24-bit; pattern and 8x8 tiling) | *E
PAT# | image (24-bit; pattern and 8x8 tiling for each pattern) | *E
PICT | image (24-bit) or other format | *E *2
pltt | image (24-bit) | *E *8
ppat | image (24-bit; color, color 8x8, mono, mono 8x8) | *E
ppt# | image (24-bit; 4 images as above for each pattern) | *E
SICN | image (24-bit, one per icon) | *E
wctb | image (24-bit) | *E *8
------------------------------------------------------------------------
Sound and sequence resources
.mod | .mod (ProTracker module) |
ALIS | .txt (description of contents) |
cmid | .midi |
csnd | .wav or .mp3 | *5
ecmi | .midi |
emid | .midi |
esnd | .wav or .mp3 | *5
ESnd | .wav or .mp3 | *5
INST | .json | *6
MADH | .madh (PlayerPRO module) |
MADI | .madi (PlayerPRO module) |
MIDI | .midi |
Midi | .midi |
midi | .midi |
SMSD | .wav | *A
snd | .wav or .mp3 | *5
SONG | .json (smssynth) | *6
SOUN | .wav | *A
Tune | .midi | *7
Ysnd | .wav |
------------------------------------------------------------------------
Code resources
ADBS | .txt (68K assembly) | *C
adio | .txt (68K assembly) | *C
AINI | .txt (68K assembly) | *C
atlk | .txt (68K assembly) | *C
boot | .txt (68K assembly) | *C
CDEF | .txt (68K assembly) | *C
cdek | .txt (PPC32 assembly and header description) |
cdev | .txt (68K assembly) | *C
CDRV | .txt (68K assembly) | *C
cfrg | .txt (description of code fragments) | *D
citt | .txt (68K assembly) | *C
clok | .txt (68K assembly) | *C
cmtb | .txt (68K assembly) | *C
cmu! | .txt (68K assembly) | *C
CODE | .txt (68K assembly or import table description) | *B *C
code | .txt (68K assembly) | *C
dcmp | .txt (68K assembly) | *C
dcod | .txt (PPC32 assembly and header description) |
dem | .txt (68K assembly) | *C
dimg | .txt (68K assembly) | *C
drvr | .txt (68K assembly) | *C
DRVR | .txt (68K assembly) | *C
enet | .txt (68K assembly) | *C
epch | .txt (PPC32 assembly) |
expt | .txt (PPC32 assembly) |
FKEY | .txt (68K assembly) | *C
fovr | .txt (PPC32 assembly and header description) |
gcko | .txt (68K assembly) | *C
gdef | .txt (68K assembly) | *C
GDEF | .txt (68K assembly) | *C
gnld | .txt (68K assembly) | *C
INIT | .txt (68K assembly) | *C
krnl | .txt (PPC32 assembly) |
LDEF | .txt (68K assembly) | *C
lmgr | .txt (68K assembly) | *C
lodr | .txt (68K assembly) | *C
ltlk | .txt (68K assembly) | *C
MBDF | .txt (68K assembly) | *C
MDEF | .txt (68K assembly) | *C
mntr | .txt (68K assembly) | *C
ncmp | .txt (PPC32 assembly and header description) |
ndlc | .txt (PPC32 assembly and header description) |
ndmc | .txt (PPC32 assembly and header description) |
ndrv | .txt (PPC32 assembly and header description) |
nift | .txt (PPC32 assembly and header description) |
nitt | .txt (PPC32 assembly and header description) |
nlib | .txt (PPC32 assembly and header description) |
nsnd | .txt (PPC32 assembly and header description) |
nsrd | .txt (PPC32 assembly) |
ntrb | .txt (PPC32 assembly and header description) |
osl | .txt (68K assembly) | *C
otdr | .txt (68K assembly) | *C
otlm | .txt (68K assembly) | *C
PACK | .txt (68K assembly) | *C
pnll | .txt (68K assembly) | *C
ppct | .txt (PPC32 assembly and header description) |
proc | .txt (68K assembly) | *C
PTCH | .txt (68K assembly) | *C
ptch | .txt (68K assembly) | *C
pthg | .txt (68K or PPC32 assembly and header description) | *C
qtcm | .txt (PPC32 assembly and header description) |
ROvr | .txt (68K assembly) | *C
RSSC | .txt (68K assembly) | *C
scal | .txt (PPC32 assembly and header description) |
scod | .txt (68K assembly) | *C
SERD | .txt (68K assembly) | *C
sfvr | .txt (PPC32 assembly and header description) |
shal | .txt (68K assembly) | *C
sift | .txt (68K assembly) | *C
SMOD | .txt (68K assembly) | *C
snth | .txt (68K assembly) | *C
tdig | .txt (68K assembly) | *C
tokn | .txt (68K assembly) | *C
vdig | .txt (68K or PPC32 assembly and header description) | *C
wart | .txt (68K assembly) | *C
WDEF | .txt (68K assembly) | *C
XCMD | .txt (68K assembly) | *C
XFCN | .txt (68K assembly) | *C
------------------------------------------------------------------------
MacApp resources
68k! | .txt (description of memory config for 680x0) |
CMNU | .txt (description of menu) |
cmnu | .txt (description of menu) |
errs | .txt (description of error ranges) |
mem! | .txt (description of memory config) |
ppc! | .txt (description of memory config for PPC) |
res! | .txt (string list of always resident segments) |
seg! | .txt (string list of segments) |
TxSt | .txt (description of text style) |
------------------------------------------------------------------------
Miscellaneous resources
ALRT | .txt (alert parameters) |
APPL | .txt (description of contents) |
audt | .txt (description of contents) |
BNDL | .txt (description of contents) |
CMDK | .txt (list of keys) |
CNTL | .txt (description of control) |
CTY# | .txt (description of cities) |
dbex | .txt (description of contents) |
DITL | .txt (dialog parameters) |
DLOG | .txt (dialog parameters) |
FBTN | .txt (description of buttons) |
FDIR | .txt (description of contents) |
fld# | .txt (description of folders) |
flst | .txt (description of font family list) |
fmap | .txt (description of finder icon mappings) |
FREF | .txt (description of file references) |
FRSV | .txt (list of font IDs) |
FWID | .txt (font parameters) |
gbly | .txt (description of Gibbly aka. System Enabler) |
GNRL | .txt (description of contents) |
hwin | .txt (description of help window) |
icmt | .txt (icon reference and comment) |
inbb | .txt (description of contents) |
indm | .txt (description of contents) |
infs | .txt (description of contents) |
inpk | .txt (description of contents) |
inra | .txt (description of contents) |
insc | .txt (description of contents) |
itl0 | .txt (international formatting information) |
ITL1 | .txt (short dates flag value) |
itlb | .txt (internationalization parameters) |
itlc | .txt (internationalization parameters) |
itlk | .txt (keyboard mappings) |
KBDN | .txt (keyboard name) |
LAYO | .txt (description of layout) |
mach | .txt (description of contents) |
MBAR | .txt (list of menu IDs) |
mcky | .txt (threshold values) |
MENU | .txt (description of menu) |
mitq | .txt (description of queue sizes) |
nrct | .txt (rectangle boundaries) |
PAPA | .txt (printer parameters) |
PICK | .txt (picker parameters) |
ppcc | .txt (description of contents) |
ppci | .txt (description of contents) |
PRC0 | .txt (description of contents) |
PRC3 | .txt (description of contents) |
pslt | .txt (description of Nubus pseudo-slot lists) |
ptbl | .txt (description of patch table) |
qrsc | .txt (description of queries) |
RECT | .txt (description of the rectangle) |
resf | .txt (list of fonts) |
RMAP | .txt (type mapping and list of ID exceptions) |
ROv# | .txt (list of overridden resource IDs) |
rtt# | .txt (list of database result handlers) |
RVEW | .txt (description of contents) |
scrn | .txt (screen device parameters) |
sect | .txt (description of contents) |
SIGN | .txt (description of contents) |
SIZE | .txt (description of parameters) |
slut | .txt (description of mapping) |
thn# | .txt (description of 'thng' mapping) |
TMPL | .txt (description of format) |
TOOL | .txt (description of contents) |
vers | .txt (version flags and strings) |
WIND | .txt (window parameters) |
Notes:
*0: Produces a 32-bit image if a corresponding monochrome resource exists
(ICN# for icl4/8, icm# for icm4/8, ics# for ics4/8, kcs# for kcs4/8). If
no monochrome resource exists, produces a 24-bit image instead. All
color information in the original resource is reproduced in the output,
even for fully-transparent pixels. If the icon was originally intended
to be used with a nonstandard compositing mode, the colors of fully-
transparent pixels may have been relevant, but most modern image viewers
and editors don't have a way to display this information.
*1: The hotspot coordinates are appended to the output filename. As in *0,
resource_dasm faithfully reproduces the color values of transparent
pixels in the output file, but most modern image editors won't show
these "transparent" pixels.
*2: resource_dasm implements multiple PICT decoders. It will first attempt
to decode the PICT using its internal decoder, which usually produces
correct results but fails on PICTs that contain complex drawing opcodes.
This decoder can handle basic QuickTime images as well (e.g. embedded
JPEGs and PNGs), but can't do any drawing under or over them, or
matte/mask effects. PICTs that contain embedded JPEGs or PNGs will
result in a JPEG or PNG file rather than the format specified by
--image-format (which is BMP by default). If the internal decoder fails,
resource_dasm will fall back to a decoder that uses picttoppm, which is
part of NetPBM. There is a rare failure mode in which picttoppm hangs
forever; resource_dasm gives it 10 seconds to do its job before killing
it and giving up. If picttoppm is not installed, fails to decode the
PICT, or is killed due to a timeout, resource_dasm will prepend the
necessary header and save the data as a PICT file instead.
*3: Text is assumed to use the Mac OS Roman encoding. It is converted to
UTF-8, and line endings (r) are converted to Unix style (n).
*4: Some rare style options may not be translated correctly. styl resources
provide styling information for the TEXT resource with the same ID, so
such a resource must be present to properly decode a styl.
*5: RMF archives can contain snd resources that are actually in MP3 format;
in this case, the exported sound will be a .mp3 file. Otherwise, the
exported sound is an uncompressed WAV file, even if the resource's data
is compressed. resource_dasm can decompress IMA 4:1, MACE 3:1, MACE 6:1,
A-law, and mu-law (ulaw) compression.
*6: JSON files from SoundMusicSys SONG resources can be played with smssynth
(http://www.github.com/fuzziqersoftware/gctools). The JSON file refers
to the instrument sounds and MIDI sequence by filename and does not
include directory names, so if you want to play these, you'll have to
manually put the sounds and MIDI files in the same directory as the JSON
file if you're using --filename-format.
*7: Tune decoding is experimental and will likely produce unplayable MIDIs.
*8: For color table resources, the raw data is always saved even if it is
decoded properly, since the original data contains 16-bit values for
each channel and the output image file has less-precise 8-bit channels.
*9: icns resources are decoded into many different file types depending on
the contents of the resource. For subfields that have split alpha
channels (that is, the transparency data is in a different subfield),
resource_dasm produces an original image and one with transparency
applied. Some icns resources also contain metadata, which is exported as
.bin, .txt, and .plist files, except for the Icon Composer version used
to create the file, which is ignored. If you want the result in Icon
Composer format, use --save-raw=yes and resource_dasm will save it as a
.icns file.
*A: These resources appear to have a fixed format, with a constant sample
rate, sample width and channel count. You may have to adjust these
parameters in the output if it turns out that these are configurable.
*B: The disassembler attempts to find exported functions by parsing the jump
table in the CODE 0 resource, but if this resource is missing or not in
the expected format, it skips this step and does not fail. Generally, if
any "export_X:" labels appear in the disassembly, then export resolution
succeeded and all of the labels should be correct (otherwise they will
all be missing).
*C: Some coprocessor and floating-point opcodes (F-class) are not
implemented and will disassemble with the comment "// unimplemented".
*D: Most PowerPC applications have their executable code in the data fork.
To disassemble it, use m68kdasm (example above).
*E: The output image format can be specified using --image-format. The
default output format is bmp (Windows bitmap); other supported formats
are png and ppm.
如果Resource_dasm無法轉換資源或不知道如何轉換,則如果存在,它將嘗試使用相應的TMPL(模板)資源來解碼資源。如果沒有適當的TMPL,則TMPL已損壞,或者TMPL無法解碼資源,Resource_dasm將產生資源的原始數據。
Resource_DASM中的大多數解碼器實現都是基於反設計現有軟件並通過舊文檔的銷售插入的爪子,因此某些稀有類型的資源可能無法正常工作。但是,我希望這個項目盡可能完整,因此,如果您有一個可以解釋的資源,但是resource_dasm無法解碼,請將其發送給我(也許是通過附加到GitHub問題),我將盡力使Resource_dasm理解它。
Resource_dasm透明地解壓縮了由資源管理器標記為壓縮的資源。
資源管理器壓縮方案從未由Apple正式記錄或公開記錄,因此這些解壓縮器的實現基於反向工程的Resedit和其他經典Mac OS代碼。總而言之,通過從DCMP或NCMP資源執行68K或PowerPC代碼來解壓縮資源,該代碼像大多數其他資源一樣在開放資源文件鏈中在運行時查找。 (實際上,相關的DCMP/NCMP通常包含在與壓縮資源或系統文件中的同一文件中。)有兩種不同的壓縮資源格式和兩種相應的68K解壓縮器的相應格式; Resource_dasm實施兩種格式的支持。
Resource_dasm包含Mac OS系統文件中內置的所有四個解壓縮器的本機實現。具體來說:
Resource_dasm具有內置的68K和PowerPC模擬器來運行非默認解壓縮器。這些仿真器還可以運行默認的解壓縮器,這些解壓縮器包含在Resource_dasm中。模擬解壓縮器的當前狀態:
我可能還沒有看到其他解壓縮器,這可能不起作用。如果您看到使用Resource_DASM時看到“警告:無法解壓縮資源”,請創建一個GitHub問題並上傳導致故障的導出的壓縮資源(.bin文件),以及所有DCMP和NCMP資源從同一源文件中。
運行sudo make install以將標頭文件和庫複製到構建後的相關路徑。安裝後,您可以#include <resource_file/IndexFormats/ResourceFork.hh> (例如),然後與-lresource_file鏈接。除了標題文件中寫的內容之外,該庫中沒有任何文檔。
該庫包含以下有用的功能和類:
使用M68KDASM相當簡單。運行m68kdasm --help以獲取完整的選項列表。
目前,M68KDASM可以拆卸這些類型的數據:
這些可執行格式中的一些支持M68KDASM不支持的CPU體系結構;如果遇到其中之一,它將將代碼段作為數據段打印。
M68KDASM還可以將POWERPC,X86和SH-4組裝組裝到RAW二進制中。 (它不支持將M68K文本組裝成二進制,但將來將實現。)每個體系結構的預期輸入語法與拆卸語法匹配;對於PowerPC和SH-4,這不是大多數其他工具使用的標準語法。
M68Kexec是摩托羅拉68000、32位PowerPC和X86架構的CPU仿真器和調試器。我經常使用它來幫助了解某些古代碼正在嘗試做什麼,或者將我轉錄為現代語言的代碼與原始代碼的行為進行比較。對於這樣的用例,您通常需要設置一個或多個輸入區域,其中包含您要測試的數據,以及一個或多個輸出區域,以供仿真代碼寫入。
也許最好以身作則來解釋。該命令用於執行來自Phantasy Star Online Blue Burst的加密上下文生成功能,以與Newserv中實現的相同函數進行比較:
./m68kexec --x86 --trace
--mem=A0000000/2AC43585C46A6366188889BCE3DB88B15C2B3C751DB6757147E7E9390598275CC79547B2E5C00DD145002816B59C067C
--mem=A1000000:1048
--load-pe=files/windows/pso/psobb.exe
--pc=00763FD0
--reg=ecx:A1000000
--push=00000030
--push=A0000000
--push=FFFFFFFF
--breakpoint=FFFFFFFF
--mem選項設置輸入區域; A0000000區域包含加密種子(0x30字節),當功能返回時,A1000000區域將包含生成的加密上下文。 --load-pe選項加載要執行的代碼, --pc告訴模擬器從哪裡開始。 (默認情況下,它將從可執行文件中定義的輸入點開始,如果有任何給出;在這裡,我們要調用一個特定的函數。) --reg選項將函數中的this設置為我們分配給它的空間。 --push選項設置了函數的參數和返回地址。它將返回到沒有分配內存的FFFFFFFF,但是我們還在該地址設置了一個--breakpoint ,該地址將停止仿真在拋出異常之前。
由於我們使用了--trace ,因此模擬器在每個操作碼之後都會打印寄存器的狀態,因此我們可以追踪其行為並將其與同一功能的外部實現進行比較。當功能返回並觸發斷點時,我們可以在Shell中使用r A1000000 1048來查看其生成的數據,並將其與我們的外部功能的結果進行比較。
render_bits可以回答“這個看起來隨機的二進制數據實際上是圖像或二維數組?”很有用嗎? ”給它一種顏色格式和一些二進制數據,它將產生一個完整的BMP文件,您可以使用自己喜歡的圖像查看器或編輯器來查看該文件。如果您認為輸入是索引顏色數據,則還可以給出一個顏色表(由clut資源從clut資源中產生的.bin文件)。如果輸出看起來像垃圾,請以寬度和顏色格式進行播放,直到找出正確的參數為止。
運行render_bits,沒有任何用於使用信息的選項。
render_text可讓您查看使用bitmap字體(字體/NFNT資源)呈現時實際文本的樣子。要使用它,請從字體或NFNT資源(例如帶有Resource_dasm -save-Raw)獲取.bin文件。然後在沒有參數的情況下運行render_text來查看如何使用它。
有時,在反向工程過程中,您最終會得到一個具有正確內容和結構的圖像,但是顏色是完全錯誤的。可能是用錯誤的顏色表渲染的。為了解決此問題,您可以使用report_clut將圖像的所有像素從一個Colorspace映射到另一個Colorspace。
運行替換_clut,而無需用於使用信息的任何選項。
一些遊戲存儲了大圖像,分為一組較小的紋理。 cossemble_images可以將它們集合到AA單個大圖中。運行cossemble_images無需任何選項即可查看如何使用它。
dupe_finder在一個或幾個資源文件中找到相同類型的重複資源。
運行dupe_finder,無需使用任何選項以獲取信息信息。
hypercard_dasm stack_file [output_dir] ,或只是hypercard_dasm查看所有選項icon_dearchiver archive_file [output_dir]將圖標打開到.ICNS文件。vrfs_dump VRFS_file [output_dir]DECODE_DATA可以解碼和解壓縮各種遊戲使用的一些自定義編碼格式。具體來說:
Game/App/Library | Encoding | CLI option | Notes
-------------------------------------------------------------
DinoPark Tycoon | LZSS | --dinopark | %0
DinoPark Tycoon | RLE | --dinopark |
Flashback | LZSS | --presage | %0
MacSki | COOK | --macski |
MacSki | CO2K | --macski |
MacSki | RUN4 | --macski |
PackBits (compress) | PackBits | --pack-bits |
PackBits (decompress) | PackBits | --unpack-bits |
Pathways Into Darkness | Pathways | --unpack-pathways |
SoundMusicSys | LZSS | --sms | %0
Notes:
%0: Although these are all variants of LZSS (and are indeed very similar to
each other), they are mutually incompatible formats.
DECODE_DATA可以單獨使用來解壓縮數據,也可以通過Resource_dasm用作外部預處理器,以透明地解壓縮某些格式。例如,要將DECODE_DATA用於Macski Resources,您可以運行諸如resource_dasm --external-preprocessor="./decode_data --macski" input_filename ...命令。
Render_sprite可以渲染幾種自定義遊戲精靈格式。對於下面列出的某些格式,除精靈資源外,您還必須提供顏色表資源。由clut,pltt或ctbl資源產生的resource_dasm產生的.bin文件就足夠了;通常,這些可以在與Sprite Resources或遊戲應用程序中的同一文件中找到。運行render_sprite沒有關於使用信息的論點。
支持格式:
Game | Type | CLI option | Need color table | Notes
---------------------------------------------------------------------------
Beyond Dark Castle | PBLK | --PBLK | No |
Beyond Dark Castle | PPCT | --PPCT | No |
Beyond Dark Castle | PSCR | --PSCR-v2 | No |
Blobbo | BTMP | --BTMP | No |
Blobbo | PMP8 | --PMP8 | Yes | $9
BodyScope | Imag | --Imag | Yes | $2 $3
Bonkheads | Sprt | --Sprt | Yes |
Bubble Trouble | btSP | --btSP | Yes |
Dark Castle (color) | DC2 | --DC2 | No | $4
Dark Castle (monochrome) | PPCT | --PPCT | No |
Dark Castle (monochrome) | PSCR | --PSCR-v1 | No |
DinoPark Tycoon | BMap | --BMap | No |
DinoPark Tycoon | XBig | --XBig | No | $2
DinoPark Tycoon | XMap | --XMap | Yes | $2 $7
Dr. Quandary | Imag | --Imag | Sometimes | $1 $2 $3
Factory | 1img | --1img | No |
Factory | 4img | --4img | Yes |
Factory | 8img | --8img | Yes |
Flashback | PPSS | --PPSS | Yes | $2 $8
Fraction Munchers | Imag | --Imag-fm | Sometimes | $1 $2 $3
Greebles | GSIF | --GSIF | Yes |
Harry the Handsome Executive | HrSp | --HrSp | Yes | $9
Lemmings | SHPD | --SHPD-v1 | Sometimes | $0 $1 $2 $5
Marathon | .256 | --.256-m | No | $2
Mario Teaches Typing | Pak | --Pak | Sometimes | $1 $2
Mars Rising | btSP | --btSP | Yes |
Number Munchers | Imag | --Imag-fm | Sometimes | $1 $2 $3
Odell Down Under | Imag | --Imag | Sometimes | $1 $2 $3
Oh No! More Lemmings | SHPD | --SHPD-v2 | Sometimes | $0 $1 $2 $5
Pathways Into Darkness | .256 | --.256-pd | No | $2
Prince of Persia | SHPD | --SHPD-p | Sometimes | $0 $1 $2 $5
Prince of Persia 2 | SHAP | --SHAP | Yes |
SimCity 2000 | SPRT | --SPRT | Yes | $2
SimTower | | | No | $A
Slithereens | SprD | --SprD | Yes | $2
SnapDragon | Imag | --Imag | Sometimes | $1 $2 $3
Spectre | shap | --shap | No | $6
Step On It! | sssf | --sssf | Yes | $2
Super Munchers | Imag | --Imag-fm | Sometimes | $1 $2 $3
Swamp Gas | PPic | --PPic | Sometimes | $0 $2 $3
The Amazon Trail | Imag | --Imag | Sometimes | $2 $3
The Oregon Trail | Imag | --Imag | Sometimes | $1 $2 $3
TheZone | Spri | --Spri | Yes |
Word Munchers | Imag | --Imag-fm | Sometimes | $1 $2 $3
Notes:
$0: render_sprite can't tell from the contents of the resource whether it is
color or monochrome, so it assumes the resource is color if you give a
color table on the command line. If decoding fails with a color table,
try decoding without one (or vice versa).
$1: These games contain some color and some monochrome graphics. It should
be obvious which are which (usually color graphics are in a separate
file), but if not, you can give a clut anyway in these cases and
render_sprite will ignore it if the image is monochrome.
$2: These sprite formats contain multiple images, so render_sprite will
produce multiple image files.
$3: Resources of this type can contain embedded color tables; if you're
rendering a color image that doesn't have a color table, you'll have to
provide one via a command-line option. If the resource (or individual
images therein) contain their own color tables or are monochrome, no
color table is required on the command line, and any provided color
table via the command line will be ignored.
$4: You can get DC2 sprites from the DC Data file with
`resource_dasm --index-format=dc-data "DC Data"`.
$5: The graphics files contain resources that refer to segments of the data
fork in the same file. So, this option expects the original Graphics or
BW Graphics or Persia file (with both data and resource forks present),
not an already-extracted resource.
$6: shap resources contain 3D models and 2D top-down projections of them.
When given a shap resource, render_sprite produces an STL file and an
OBJ file for the 3D model, and an SVG file for the 2D top-down view.
$7: Some XMap resources are stored inside CBag archives. You can extract
them with `resource_dasm --index-format=cbag <CBAG_file.bin>`.
$8: This game has only one clut and it's huge - far longer than the usual
256 entries. It seems PPSS image sets are meant to be rendered with a
subset of this clut, but I haven't been able to figure out (yet) how the
game chooses what subset of it to use.
$9: The game doesn't contain any color tables. You can use a 256-color clut
resource from the Mac OS System file, or use the --default-clut option.
$A: The game stores its sprites in normal PICT resources with an incorrect
type. Use `resource_dasm --copy-handler=PICT:%89%E6%91%9C` to decode
them instead of using render_sprite.
Icon_dearchiver將圖標檔案中的圖標(由Alessandro Levi Montalcini)放在.ICNS中。運行它沒有任何使用信息的選項。
blobbo_render <Blev-file.bin> <PMP8-128.bmp>ferazel_render ,或ferazel_render --help來查看所有選項(有很多!)gamma_zee_render gamma_zee_application levels_filenameharry_render --clut-file=clut.bin ,或者只是harry_render查看所有選項(有很多!)infotron_renderlemmings_render --clut-file=clut.bin或lemmings_render --help中查看所有選項mshines_render world_file [output_directory]lemmings_render作為原始誘餌,還使用--v2選項realmz_dasm global_data_dir [scenario_dir] out_dir (如果沒有給出scenario_dir,請拆卸共享數據)