[Touch Diamond, MDA Compact IV ROM Development] ibivibiv:
Lua Decompilers

Don't know if you guys are even around still, I did a search on Lua decompilers and didn't find much, however I did try the reverser files with a disasm app that yielded this:

partial code listing example here:

<code>

;

; Original file: C:\Documents and Settings\hhannon\Desktop\ManilaReverserPack\luac\programlauncher.mode9.scripts\script0.luac

; File format: Lua 5.1

; Disassembled: Fri Nov 21 14:22:52 2008

;

; Name:

; Defined at line: 0

; #Upvalues: 0

; #Parameters: 0

; Is_vararg: 2

; Max Stack Size: 2

;

; No locals information

; No upvalues

1 [-]: GETGLOBAL R0 K0 ; R0 := require

2 [-]: LOADK R1 K1 ; R1 := "class"

3 [-]: CALL R0 2 1 ; R0(R1)

4 [-]: LOADK R0 K3 ; R0 := 3

5 [-]: SETGLOBAL R0 K2 ; ScrollPhysics_FlickThreshold := R0

6 [-]: LOADK R0 K5 ; R0 := 1.5

7 [-]: SETGLOBAL R0 K4 ; ScrollPhysics_FlickMultiplier := R0

8 [-]: LOADK R0 K7 ; R0 := 50

9 [-]: SETGLOBAL R0 K6 ; ScrollPhysics_DragThreshold := R0

10 [-]: LOADK R0 K9 ; R0 := 90

11 [-]: SETGLOBAL R0 K8 ; ScrollPhysics_DragValue := R0

12 [-]: LOADK R0 K11 ; R0 := 60

13 [-]: SETGLOBAL R0 K10 ; ScrollPhysics_Elasticity := R0

14 [-]: LOADK R0 K11 ; R0 := 60

15 [-]: SETGLOBAL R0 K12 ; ScrollPhysics_MaxElasticity := R0

16 [-]: LOADK R0 K14 ; R0 := 40

17 [-]: SETGLOBAL R0 K13 ; ScrollPhysics_DampenFactor := R0

18 [-]: LOADK R0 K16 ; R0 := 150

19 [-]: SETGLOBAL R0 K15 ; ScrollPhysics_DampenDistance := R0

20 [-]: LOADK R0 K7 ; R0 := 50

21 [-]: SETGLOBAL R0 K17 ; ScrollPhysics_SwipeMomentum := R0

22 [-]: CLOSURE R0 0 ; R0 := closure(Function #0)

23 [-]: SETGLOBAL R0 K18 ; abs := R0

24 [-]: CLOSURE R0 1 ; R0 := closure(Function #1)

25 [-]: SETGLOBAL R0 K19 ; constrain := R0

26 [-]: GETGLOBAL R0 K1 ; R0 := class

27 [-]: CALL R0 1 2 ; R0 := R0()

28 [-]: SETGLOBAL R0 K20 ; ScrollMomentum := R0

29 [-]: GETGLOBAL R0 K20 ; R0 := ScrollMomentum

30 [-]: CLOSURE R1 2 ; R1 := closure(Function #2)

31 [-]: SETTABLE R0 K21 R1 ; R0["__init"] := R1

32 [-]: GETGLOBAL R0 K20 ; R0 := ScrollMomentum

33 [-]: CLOSURE R1 3 ; R1 := closure(Function #3)

34 [-]: SETTABLE R0 K22 R1 ; R0["GetMomentum"] := R1

35 [-]: GETGLOBAL R0 K20 ; R0 := ScrollMomentum

36 [-]: CLOSURE R1 4 ; R1 := closure(Function #4)

37 [-]: SETTABLE R0 K23 R1 ; R0["Reset"] := R1

38 [-]: GETGLOBAL R0 K20 ; R0 := ScrollMomentum

39 [-]: CLOSURE R1 5 ; R1 := closure(Function #5)

40 [-]: SETTABLE R0 K24 R1 ; R0["Update"] := R1

41 [-]: GETGLOBAL R0 K1 ; R0 := class

42 [-]: CALL R0 1 2 ; R0 := R0()

43 [-]: SETGLOBAL R0 K25 ; ScrollPhysics := R0

44 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

45 [-]: CLOSURE R1 6 ; R1 := closure(Function #6)

46 [-]: SETTABLE R0 K26 R1 ; R0["HandleMousePress"] := R1

47 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

48 [-]: CLOSURE R1 7 ; R1 := closure(Function #7)

49 [-]: SETTABLE R0 K27 R1 ; R0["HandleMouseRelease"] := R1

50 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

51 [-]: CLOSURE R1 8 ; R1 := closure(Function #8)

52 [-]: SETTABLE R0 K28 R1 ; R0["HandleMouseMove"] := R1

53 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

54 [-]: CLOSURE R1 9 ; R1 := closure(Function #9)

55 [-]: SETTABLE R0 K29 R1 ; R0["HandleKeyDown"] := R1

56 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

57 [-]: CLOSURE R1 10 ; R1 := closure(Function #10)

58 [-]: SETTABLE R0 K30 R1 ; R0["ResetMomentum"] := R1

59 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

60 [-]: CLOSURE R1 11 ; R1 := closure(Function #11)

61 [-]: SETTABLE R0 K31 R1 ; R0["UpdateMomentum"] := R1

62 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

63 [-]: CLOSURE R1 12 ; R1 := closure(Function #12)

64 [-]: SETTABLE R0 K32 R1 ; R0["HandleUpdate"] := R1

65 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

66 [-]: CLOSURE R1 13 ; R1 := closure(Function #13)

67 [-]: SETTABLE R0 K21 R1 ; R0["__init"] := R1

68 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

69 [-]: CLOSURE R1 14 ; R1 := closure(Function #14)

70 [-]: SETTABLE R0 K33 R1 ; R0["ConnectMouseEvents"] := R1

71 [-]: GETGLOBAL R0 K25 ; R0 := ScrollPhysics

72 [-]: CLOSURE R1 15 ; R1 := closure(Function #15)

73 [-]: SETTABLE R0 K34 R1 ; R0["DisconnectMouseEvents"] := R1

74 [-]: RETURN R0 1 ; return

; Function #0:

;

; Name:

; Defined at line: 37

; #Upvalues: 0

; #Parameters: 1 (R0)

; Is_vararg: 0

; Max Stack Size: 2

;

; No locals information

; No upvalues

1 [-]: LT 0 R0 K0 ; if R0 >= 0 then PC := 5

2 [-]: JMP 5

3 [-]: UNM R1 R0 ; R1 := - R0

4 [-]: RETURN R1 2 ; return R1

5 [-]: RETURN R0 2 ; return R0

6 [-]: RETURN R0 1 ; return

; Function #1:

;

; Name:

; Defined at line: 45

; #Upvalues: 0

; #Parameters: 3 (R0, R1, R2)

; Is_vararg: 0

; Max Stack Size: 4

;

; No locals information

; No upvalues

1 [-]: MOVE R3 R0 ; R3 := R0

2 [-]: LT 0 R0 R1 ; if R0 >= R1 then PC := 5

3 [-]: JMP 5

4 [-]: MOVE R3 R1 ; R3 := R1

5 [-]: LT 0 R2 R0 ; if R2 >= R0 then PC := 8

6 [-]: JMP 8

7 [-]: MOVE R3 R2 ; R3 := R2

8 [-]: RETURN R3 2 ; return R3

9 [-]: RETURN R0 1 ; return

; Function #2:

;

; Name:

; Defined at line: 60

; #Upvalues: 0

; #Parameters: 1 (R0)

; Is_vararg: 0

; Max Stack Size: 3

;

; No locals information

; No upvalues

1 [-]: SELF R1 R0 K0 ; R2 := R0; R1 := R0["Reset"]

2 [-]: CALL R1 2 1 ; R1(R2)

3 [-]: RETURN R0 1 ; return

</code>

It looks more straight forward than what the other tool does. I can at least see the functions easier.