JeanxPereira Posted May 3, 2024 Share Posted May 3, 2024 (edited) I'm working with the game GeminiLost from playfirst, they have an assets.pfp file that can be extracted using a BMS script [https://aluigi.altervista.org/bms/pfpk.bms]. After extraction it is possible to see lua scripts that were compiled using lua 5.0: scripts.zip I try to use ChunkBake, luadec, unluac and they all always give the same error, using ChunkSpy it is possible to see that you can identify a large part of the file but at the end it shows an error at the end: Pos Hex Data Description or Code ------------------------------------------------------------------------ 0000 ** source chunk: ok.lua ** global header start ** 0000 1B4C7561 header signature: "\27Lua" 0004 50 version (major:minor hex digits) 0005 01 endianness (1=little endian) 0006 04 size of int (bytes) 0007 04 size of size_t (bytes) 0008 04 size of Instruction (bytes) 0009 06 size of OP (bits) 000A 08 size of A (bits) 000B 09 size of B (bits) 000C 09 size of C (bits) 000D 08 size of number (bytes) 000E B6099368E7F57D41 sample number (double) * x86 standard (32-bit, little endian, doubles) ** global header end ** 0016 ** function [0] definition (level 1) ** start of function ** 0016 08000000 string size (8) 001A 3D286E6F6E652900 "=(none)" source name: =(none) 0022 00000000 line defined (0) 0026 00 nups (0) 0027 00 numparams (0) 0028 00 is_vararg (0) 0029 11 maxstacksize (17) * lines: 002A 00000000 sizelineinfo (0) [pc] (line) * locals: 002E 00000000 sizelocvars (0) * upvalues: 0032 00000000 sizeupvalues (0) * constants: 0036 36000000 sizek (54) 003A 04 const type 4 003B 08000000 string size (8) 003F 7265717569726500 "require" const [0]: "require" 0047 04 const type 4 0048 12000000 string size (18) 004C 736372697074732F+ "scripts/" 0054 7374796C652E6C75+ "style.lu" 005C 6100 "a\0" const [1]: "scripts/style.lua" 005E 04 const type 4 005F 0B000000 string size (11) 0063 4D616B654469616C+ "MakeDial" 006B 6F6700 "og\0" const [2]: "MakeDialog" 006E 04 const type 4 006F 07000000 string size (7) 0073 4269746D617000 "Bitmap" const [3]: "Bitmap" 007A 04 const type 4 007B 06000000 string size (6) 007F 696D61676500 "image" const [4]: "image" 0085 04 const type 4 0086 1A000000 string size (26) 008A 75692F7375726661+ "ui/surfa" 0092 6365732F626C6163+ "ces/blac" 009A 6B5F616C70686137+ "k_alpha7" 00A2 3000 "0\0" const [5]: "ui/surfaces/black_alpha70" 00A4 04 const type 4 00A5 06000000 string size (6) 00A9 7363616C6500 "scale" const [6]: "scale" 00AF 03 const type 3 00B0 0000000000007940 const [7]: (400) 00B8 04 const type 4 00B9 05000000 string size (5) 00BD 6E616D6500 "name" const [8]: "name" 00C2 04 const type 4 00C3 10000000 string size (16) 00C7 7965736E6F626163+ "yesnobac" 00CF 6B67726F756E6400 "kground\0" const [9]: "yesnobackground" 00D7 04 const type 4 00D8 19000000 string size (25) 00DC 7375726661636573+ "surfaces" 00E4 2F6D656E752F706F+ "/menu/po" 00EC 7075705F68656C70+ "pup_help" 00F4 00 "\0" const [10]: "surfaces/menu/popup_help" 00F5 04 const type 4 00F6 02000000 string size (2) 00FA 7800 "x" const [11]: "x" 00FC 04 const type 4 00FD 08000000 string size (8) 0101 6B43656E74657200 "kCenter" const [12]: "kCenter" 0109 04 const type 4 010A 02000000 string size (2) 010E 7900 "y" const [13]: "y" 0110 03 const type 3 0111 0000000000005940 const [14]: (100) 0119 04 const type 4 011A 09000000 string size (9) 011E 5365745374796C65+ "SetStyle" 0126 00 "\0" const [15]: "SetStyle" 0127 04 const type 4 0128 16000000 string size (22) 012C 4372656174655075+ "CreatePu" 0134 7368427574746F6E+ "shButton" 013C 5374796C6500 "Style\0" const [16]: "CreatePushButtonStyle" 0142 04 const type 4 0143 17000000 string size (23) 0147 5374616E64617264+ "Standard" 014F 427574746F6E4772+ "ButtonGr" 0157 61706869637300 "aphics\0" const [17]: "StandardButtonGraphics" 015E 04 const type 4 015F 13000000 string size (19) 0163 44656661756C7442+ "DefaultB" 016B 7574746F6E536F75+ "uttonSou" 0173 6E6400 "nd\0" const [18]: "DefaultButtonSound" 0176 04 const type 4 0177 07000000 string size (7) 017B 427574746F6E00 "Button" const [19]: "Button" 0182 04 const type 4 0183 06000000 string size (6) 0187 636C6F736500 "close" const [20]: "close" 018D 04 const type 4 018E 06000000 string size (6) 0192 666C61677300 "flags" const [21]: "flags" 0198 03 const type 3 0199 0000000000001440 const [22]: (5) 01A1 04 const type 4 01A2 03000000 string size (3) 01A6 6F6B00 "ok" const [23]: "ok" 01A9 04 const type 4 01AA 05000000 string size (5) 01AE 6B4D617800 "kMax" const [24]: "kMax" 01B3 03 const type 3 01B4 0000000000004D40 const [25]: (58) 01BC 04 const type 4 01BD 0B000000 string size (11) 01C1 4372656174655465+ "CreateTe" 01C9 787400 "xt\0" const [26]: "CreateText" 01CC 03 const type 3 01CD 000000000000F03F const [27]: (1) 01D5 03 const type 3 01D6 0000000000001040 const [28]: (4) 01DE 03 const type 3 01DF 0000000000000000 const [29]: (0) 01E7 04 const type 4 01E8 10000000 string size (16) 01EC 4372656174655465+ "CreateTe" 01F4 78745374796C6500 "xtStyle\0" const [30]: "CreateTextStyle" 01FC 04 const type 4 01FD 0C000000 string size (12) 0201 4C6974686F636170+ "Lithocap" 0209 73656400 "sed\0" const [31]: "Lithocapsed" 020D 03 const type 3 020E 0000000000002C40 const [32]: (14) 0216 04 const type 4 0217 0B000000 string size (11) 021B 426C61636B436F6C+ "BlackCol" 0223 6F7200 "or\0" const [33]: "BlackColor" 0226 04 const type 4 0227 09000000 string size (9) 022B 466F6E7447616D65+ "FontGame" 0233 00 "\0" const [34]: "FontGame" 0234 03 const type 3 0235 0000000000003440 const [35]: (20) 023D 04 const type 4 023E 05000000 string size (5) 0242 5465787400 "Text" const [36]: "Text" 0247 04 const type 4 0248 08000000 string size (8) 024C 6F6B7469746C6500 "oktitle" const [37]: "oktitle" 0254 03 const type 3 0255 0000000000004E40 const [38]: (60) 025D 03 const type 3 025E 0000000000004440 const [39]: (40) 0266 04 const type 4 0267 02000000 string size (2) 026B 7700 "w" const [40]: "w" 026D 04 const type 4 026E 02000000 string size (2) 0272 6800 "h" const [41]: "h" 0274 04 const type 4 0275 0E000000 string size (14) 0279 6B56416C69676E43+ "kVAlignC" 0281 656E74657200 "enter\0" const [42]: "kVAlignCenter" 0287 04 const type 4 0288 0C000000 string size (12) 028C 6B48416C69676E4C+ "kHAlignL" 0294 65667400 "eft\0" const [43]: "kHAlignLeft" 0298 04 const type 4 0299 06000000 string size (6) 029D 6C6162656C00 "label" const [44]: "label" 02A3 04 const type 4 02A4 0D000000 string size (13) 02A8 674469616C6F6754+ "gDialogT" 02B0 61626C6500 "able\0" const [45]: "gDialogTable" 02B5 04 const type 4 02B6 06000000 string size (6) 02BA 7469746C6500 "title" const [46]: "title" 02C0 04 const type 4 02C1 0B000000 string size (11) 02C5 5768697465436F6C+ "WhiteCol" 02CD 6F7200 "or\0" const [47]: "WhiteColor" 02D0 04 const type 4 02D1 07000000 string size (7) 02D5 6F6B626F647900 "okbody" const [48]: "okbody" 02DC 03 const type 3 02DD 0000000000805B40 const [49]: (110) 02E5 03 const type 3 02E6 0000000000004740 const [50]: (46) 02EE 03 const type 3 02EF 0000000000005E40 const [51]: (120) 02F7 03 const type 3 02F8 0000000000805140 const [52]: (70) 0300 04 const type 4 0301 05000000 string size (5) 0305 626F647900 "body" const [53]: "body" * functions: 030A 00000000 sizep (0) * code: 030E 6F000000 sizecode (111) 0312 05000000 [001] getglobal 0 0 ; require 0316 41000001 [002] loadk 1 1 ; "scripts/style.lua" 031A 5D000100 [003] tforloop 0 1 ; to [5] if exit 031E 85000000 [004] getglobal 0 2 ; MakeDialog 0322 0A800001 [005] newtable 1 1 0 ; array=1, hash=0 0326 C5000002 [006] getglobal 2 3 ; Bitmap 032A 8A800003 [007] newtable 3 1 2 ; array=1, hash=4 032E C93F7F03 [008] settable 3 254 255 ; "image" "ui/surfaces/black_alpha70" 0332 49408003 [009] settable 3 256 257 ; "scale" 400 0336 C5000004 [010] getglobal 4 3 ; Bitmap 033A CA000305 [011] newtable 5 6 3 ; array=6, hash=8 033E C9408105 [012] settable 5 258 259 ; "name" "yesnobackground" 0342 09417F05 [013] settable 5 254 260 ; "image" "surfaces/menu/popup_help" 0346 05030006 [014] getglobal 6 12 ; kCenter 034A 89818205 [015] settable 5 261 6 ; "x" 034E 05030006 [016] getglobal 6 12 ; kCenter 0352 0D420306 [017] sub 6 6 264 ; 100 0356 89818305 [018] settable 5 263 6 ; "y" 035A C5030006 [019] getglobal 6 15 ; SetStyle 035E 05040007 [020] getglobal 7 16 ; CreatePushButtonStyle 0362 45040008 [021] getglobal 8 17 ; StandardButtonGraphics 0366 85040009 [022] getglobal 9 18 ; DefaultButtonSound 036A 1D800107 [023] tforloop 7 0 ; to [25] if exit 036E 9D000006 [024] tforloop 6 2 ; to [26] if exit 0372 C5040007 [025] getglobal 7 19 ; Button 0376 CA800108 [026] newtable 8 3 3 ; array=3, hash=8 037A 02800009 [027] loadbool 9 1 0 ; true 037E 49028708 [028] settable 8 270 9 ; "close" 0382 09C48708 [029] settable 8 271 272 ; "flags" 5 0386 49448108 [030] settable 8 258 273 ; "name" "ok" 038A 05030009 [031] getglobal 9 12 ; kCenter 038E 49828208 [032] settable 8 261 9 ; "x" 0392 05060009 [033] getglobal 9 24 ; kMax 0396 CDC40409 [034] sub 9 9 275 ; 58 039A 49828308 [035] settable 8 263 9 ; "y" 039E 85060009 [036] getglobal 9 26 ; CreateText 03A2 C106000A [037] loadk 10 27 ; 1 03A6 0107000B [038] loadk 11 28 ; 4 03AA C105000C [039] loadk 12 23 ; "ok" 03AE 4107000D [040] loadk 13 29 ; 0 03B2 4107000E [041] loadk 14 29 ; 0 03B6 9D000309 [042] tforloop 9 2 ; to [44] if exit 03BA C503000A [043] getglobal 10 15 ; SetStyle 03BE 8507000B [044] getglobal 11 30 ; CreateTextStyle 03C2 C507000C [045] getglobal 12 31 ; Lithocapsed 03C6 0108000D [046] loadk 13 32 ; 14 03CA 4508000E [047] getglobal 14 33 ; BlackColor 03CE 1D00020B [048] tforloop 11 0 ; to [50] if exit 03D2 9D00000A [049] tforloop 10 2 ; to [51] if exit 03D6 8506000B [050] getglobal 11 26 ; CreateText 03DA 4107000C [051] loadk 12 29 ; 0 03DE 4107000D [052] loadk 13 29 ; 0 03E2 C105000E [053] loadk 14 23 ; "ok" 03E6 4107000F [054] loadk 15 29 ; 0 03EA 41070010 [055] loadk 16 29 ; 0 03EE 1D00030B [056] tforloop 11 0 ; to [58] if exit ChunkSpy: A Lua 5.0.2 binary chunk disassembler Version 0.9.7 (20050605) Copyright (c) 2004-2005 Kein-Hong Man The COPYRIGHT file describes the conditions under which this software may be distributed (basically a Lua 5-style license.) * Run with option -h or --help for usage information ChunkSpy:392: bad argument #1 to `len' (string expected, got nil) ChunkBake: ChunkBake: A Lua 5 binary chunk assembler Version 0.7.0 (20050512) Copyright (c) 2005 Kein-Hong Man The COPYRIGHT file describes the conditions under which this software may be distributed (basically a Lua 5-style license.) * Run with option -h or --help for usage information ChunkBake:260: ok.lua:1: Error: unknown character or control character I'm confused, do I need to make any changes to all the .lua files in the game or is there an error when unzipping the .pfp file? Edited May 3, 2024 by JeanxPereira Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now