If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Gameloft Classics

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Gameloft Classics

Developer: Gameloft
Publisher: Gameloft
Platforms: Android
Released internationally: 2020


DevTextIcon.png This game has hidden development-related text.


Hmmm...
To do:
Check for unused text.
  • There's code for handling IAPs. It's probably best to refer to 1.2.2 for knowing a portion of uncompiled Java file names.

For Gameloft's 20th anniversary, the company decided to package 30 legacy Java titles in this single app. If you want to relive this era, this is the app for you.

Development Leftovers

Compatibility List Document

support.txt in the root of the app is a compatibility list for various devices.


support

jsr 030 - cldc 1.0
jsr 037 - midp 1.0
jsr 075 - file connection 1.0 (pda)
jsr 082 - bluetooth
jsr 118 - midp 2.0
jsr 120 - wma 1.1
jsr 135 - mobile media api
jsr 139 - cldc 1.1
jsr 184 - m3g
jsr 205 - wma 2.0
jsr 234 - amms

sprint api
sprint pcs licence mrc 
nokia UI
samsung api
vodafone vscl 1.1.0
vodafone vscl 2.0
jscl 1.2.2
doja up to doja 5.1

Internal Sound Material

Present in the sounds directory are two files not used by the game, a sound design document written by an unknown author, modified on February 14th in 2019 at 7:15AM. There is also _ForSoundTech.7z, most likely for sound designers but its contents are locked under a password... PHD is most likely Pocket HD as Gameloft's other games internally or itself as a company commonly mentions that term.

Download.png Download Gameloft Classics Sound Leftovers
File: GloftClassicsSoundLeftovers.zip (440 KB) (info)


Uncompiled Sprites

Hmmm...
To do:
Check other distributions for these files.

In the assets directory, there are three uncompiled sprite files along with said images as .png files.

Anim_coin.sprite:

// C:\1.Project\ClassicGooglePlay\__Wrapper_Rewirte_Freemium\data\USE_MULTI_GAMES\assets\Anim_coin.sprite
// saved by AuroraGT v0.7.1 (SpriteEditor v0.8.1)
////////////////////////////////////////////////////////////////////////////////
/*SPRITE*/ {

    VERSION 0001

    // Images:  1
    // Modules: 6
    // Frames:  6
    // Anims:   1

////////////////////////////////////////////////////////////////////////////////
// Images...
// <Image> := IMAGE [id] "file" [TRANSP transp_color]

    IMAGE 0x0000 ".\Anim_coin.png" TRANSP 0x00FF00FF // 0  size: 615 x 133  palettes: 1

////////////////////////////////////////////////////////////////////////////////
// Modules...
// <Modules> := MODULES { <MD1> <MD2> ... }
// <MDi>     := MD id Type [params] ["desc"]
// Type      := MD_IMAGE | MD_RECT | ...
// [params]  := if (Type == MD_IMAGE)     -> image x y width height
//              if (Type == MD_RECT)      -> color width height
//              if (Type == MD_FILL_RECT) -> color width height
//              if (Type == MD_ARC)       -> color width height
//              if (Type == MD_FILL_ARC)  -> color width height

    MODULES
    {
        MD	0x1003	MD_IMAGE	0	65	3	126	126
        MD	0x1002	MD_IMAGE	0	346	3	67	126
        MD	0x1001	MD_IMAGE	0	218	3	110	126
        MD	0x1000	MD_IMAGE	0	5	3	24	126
        MD	0x1004	MD_IMAGE	0	420	3	111	126
        MD	0x1005	MD_IMAGE	0	538	3	67	126
    }

////////////////////////////////////////////////////////////////////////////////
// Frames...
// <Frame> := FRAME ["desc"] { id <RC1> [<RC2> ...] <FM1> [<FM2> ...] }
// <RCi>   := RC x1 y1 x2 y2
// <FMi>   := FM module_or_frame_id ox oy [FLAGS hex_flags] [+Flags]
// Flags   := HYPER_FM | FLIP_X | FLIP_Y | ROT_90

    FRAME "" // Index = 0, FModules = 1
    {
        0x2000
        FM	0x1000	-10	0
    }

    FRAME "" // Index = 1, FModules = 1
    {
        0x2002
        FM	0x1002	-31	1
    }

    FRAME "" // Index = 2, FModules = 1
    {
        0x2001
        FM	0x1001	-53	1
    }

    FRAME "" // Index = 3, FModules = 1
    {
        0x2003
        FM	0x1003	-63	1
    }

    FRAME "" // Index = 4, FModules = 1
    {
        0x2004
        FM	0x1004	-55	0
    }

    FRAME "" // Index = 5, FModules = 1
    {
        0x2005
        FM	0x1005	-33	0
    }

////////////////////////////////////////////////////////////////////////////////
// Animations...
// <Anim> := ANIM ["desc"] { id [<AF1> <AF2> ...] }
// <AFi>  := AF frame_id time ox oy [FLAGS hex_flags] [+Flags]
// Flags  := FLIP_X | FLIP_Y | ROT_90

    ANIM "" // Index = 0, AFrames = 6
    {
        0x3000
        AF	0x2000	100	0	1
        AF	0x2002	100	0	0
        AF	0x2001	100	0	0
        AF	0x2003	100	0	0
        AF	0x2004	100	0	1
        AF	0x2005	100	0	1
    }

////////////////////////////////////////////////////////////////////////////////
// Tilesets...

    SPRITE_END

} // SPRITE
////////////////////////////////////////////////////////////////////////////////

giftbox_animation.sprite:

// saved by AuroraGT v0.1.1.5 (SpriteEditor v0.1.1.0)
////////////////////////////////////////////////////////////////////////////////
/*SPRITE*/ {

    VERSION 0001

    // Images:  1
    // Modules: 19
    // Frames:  18
    // Anims:   1

////////////////////////////////////////////////////////////////////////////////
// Images...
// <Image> := IMAGE [id] "file" [ALPHA "alpha_file"] [TRANSP transp_color]

    IMAGE 0x0000 ".\giftbox_animation.png" TRANSP 0x00FF00FF // 0  size: 3523 x 2799  palettes: 1

////////////////////////////////////////////////////////////////////////////////
// Modules...
// <Modules> := MODULES { <MD1> <MD2> ... }
// <MDi>     := MD id Type [params] ["desc"]
// Type      := MD_IMAGE | MD_RECT | ...
// [params]  := if (Type == MD_IMAGE)     -> image x y width height
//              if (Type == MD_RECT)      -> color width height
//              if (Type == MD_FILL_RECT) -> color width height
//              if (Type == MD_ARC)       -> color width height startAngle arcAngle
//              if (Type == MD_FILL_ARC)  -> color width height startAngle arcAngle
//              if (Type == MD_MARKER)    -> color width height
//              if (Type == MD_TRIANGLE)  -> color p2X p2Y p3X p3Y
//              if (Type == MD_FILL_TRIANGLE)  -> color p2X p2Y p3X p3Y
//              if (Type == MD_LINE)	   -> color width height
//              if (Type == MD_FILL_RECT_GRAD) -> color01 color02 direction width height
//              if (Type == MD_GRADIENT_TRIANGLE) -> x0 y0 color0 x1 y1 color1 x2 y2 color2
//              if (Type == MD_GRADIENT_RECT) -> x0 y0 color0 x1 y1 color1 x2 y2 color2 x3 y3 color3

    MODULES
    {
        MD	0x1012	MD_IMAGE	0	2129	2112	650	650
        MD	0x1011	MD_IMAGE	0	1410	2112	650	650
        MD	0x1010	MD_IMAGE	0	709	2105	650	650
        MD	0x100F	MD_IMAGE	0	8	2106	650	650
        MD	0x100E	MD_IMAGE	0	2832	1396	650	650
        MD	0x100D	MD_IMAGE	0	2134	1394	650	650
        MD	0x100C	MD_IMAGE	0	1414	1394	650	650
        MD	0x100A	MD_IMAGE	0	717	1401	650	650
        MD	0x1009	MD_IMAGE	0	6	1400	650	650
        MD	0x1008	MD_IMAGE	0	2832	693	650	650
        MD	0x1007	MD_IMAGE	0	2140	694	650	650
        MD	0x1006	MD_IMAGE	0	1424	694	650	650
        MD	0x1005	MD_IMAGE	0	712	694	650	650
        MD	0x1004	MD_IMAGE	0	0	697	650	650
        MD	0x1003	MD_IMAGE	0	2584	4	650	650
        MD	0x1002	MD_IMAGE	0	1880	0	650	650
        MD	0x1001	MD_IMAGE	0	1181	0	650	650
        MD	0x1000	MD_IMAGE	0	481	0	650	650
        MD	0x100B	MD_IMAGE	0	27	47	417	518
    }

////////////////////////////////////////////////////////////////////////////////
// Frames...
// <Frame> := FRAME ["desc"] { id <RC1> [<RC2> ...] <FM1> [<FM2> ...] }
// <RCi>   := RC x1 y1 x2 y2
// <FMi>   := FM module_or_frame_id ox oy [FLAGS hex_flags] [+Flags]
// Flags   := HYPER_FM | FLIP_X | FLIP_Y | ROT_90 | FREE_ROT

    FRAME "" // Index = 0, FModules = 2
    {
        0x2000
        FM	0x1012	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 1, FModules = 2
    {
        0x2001
        FM	0x1011	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 2, FModules = 2
    {
        0x2002
        FM	0x1010	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 3, FModules = 2
    {
        0x2003
        FM	0x100F	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 4, FModules = 2
    {
        0x2004
        FM	0x100E	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 5, FModules = 2
    {
        0x2005
        FM	0x100D	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 6, FModules = 2
    {
        0x2006
        FM	0x100C	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 7, FModules = 2
    {
        0x2007
        FM	0x100A	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 8, FModules = 2
    {
        0x2008
        FM	0x1009	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 9, FModules = 2
    {
        0x2009
        FM	0x1008	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 10, FModules = 2
    {
        0x200A
        FM	0x1007	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 11, FModules = 2
    {
        0x200B
        FM	0x1006	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 12, FModules = 2
    {
        0x200C
        FM	0x1005	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 13, FModules = 2
    {
        0x200D
        FM	0x1004	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 14, FModules = 2
    {
        0x200E
        FM	0x1003	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 15, FModules = 2
    {
        0x200F
        FM	0x1002	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 16, FModules = 2
    {
        0x2010
        FM	0x1001	-241	-168
        FM	0x100B	-117	-125
    }

    FRAME "" // Index = 17, FModules = 2
    {
        0x2011
        FM	0x1000	-241	-168
        FM	0x100B	-117	-125
    }

////////////////////////////////////////////////////////////////////////////////
// Animations...
// <Anim> := ANIM ["desc"] { id [<AF1> <AF2> ...] }
// <AFi>  := AF frame_id time ox oy [FLAGS hex_flags] [+Flags]
// Flags  := FLIP_X | FLIP_Y | ROT_90

    ANIM "" // Index = 0, AFrames = 18
    {
        0x3000
        AF	0x2000	120	0	0
        AF	0x2001	120	0	0
        AF	0x2002	120	0	0
        AF	0x2003	120	0	0
        AF	0x2004	120	0	0
        AF	0x2005	120	0	0
        AF	0x2006	120	0	0
        AF	0x2007	120	0	0
        AF	0x2008	120	0	0
        AF	0x2009	120	0	0
        AF	0x200A	120	0	0
        AF	0x200B	120	0	0
        AF	0x200C	120	0	0
        AF	0x200D	120	0	0
        AF	0x200E	120	0	0
        AF	0x200F	120	0	0
        AF	0x2010	120	0	0
        AF	0x2011	120	0	0
    }

    SPRITE_END

} // SPRITE
////////////////////////////////////////////////////////////////////////////////

unlock_animation.sprite:

// saved by AuroraGT v0.1.1.5 (SpriteEditor v0.1.1.0)
////////////////////////////////////////////////////////////////////////////////
/*SPRITE*/ {

    VERSION 0001

    // Images:  1
    // Modules: 3
    // Frames:  3
    // Anims:   1

////////////////////////////////////////////////////////////////////////////////
// Images...
// <Image> := IMAGE [id] "file" [ALPHA "alpha_file"] [TRANSP transp_color]

    IMAGE 0x0000 ".\unlock_animation.png" TRANSP 0x00FF00FF // 0  size: 751 x 233  palettes: 1

////////////////////////////////////////////////////////////////////////////////
// Modules...
// <Modules> := MODULES { <MD1> <MD2> ... }
// <MDi>     := MD id Type [params] ["desc"]
// Type      := MD_IMAGE | MD_RECT | ...
// [params]  := if (Type == MD_IMAGE)     -> image x y width height
//              if (Type == MD_RECT)      -> color width height
//              if (Type == MD_FILL_RECT) -> color width height
//              if (Type == MD_ARC)       -> color width height startAngle arcAngle
//              if (Type == MD_FILL_ARC)  -> color width height startAngle arcAngle
//              if (Type == MD_MARKER)    -> color width height
//              if (Type == MD_TRIANGLE)  -> color p2X p2Y p3X p3Y
//              if (Type == MD_FILL_TRIANGLE)  -> color p2X p2Y p3X p3Y
//              if (Type == MD_LINE)	   -> color width height
//              if (Type == MD_FILL_RECT_GRAD) -> color01 color02 direction width height
//              if (Type == MD_GRADIENT_TRIANGLE) -> x0 y0 color0 x1 y1 color1 x2 y2 color2
//              if (Type == MD_GRADIENT_RECT) -> x0 y0 color0 x1 y1 color1 x2 y2 color2 x3 y3 color3

    MODULES
    {
        MD	0x1000	MD_IMAGE	0	0	0	230	233
        MD	0x1001	MD_IMAGE	0	254	0	230	233
        MD	0x1002	MD_IMAGE	0	521	0	230	233
    }

////////////////////////////////////////////////////////////////////////////////
// Frames...
// <Frame> := FRAME ["desc"] { id <RC1> [<RC2> ...] <FM1> [<FM2> ...] }
// <RCi>   := RC x1 y1 x2 y2
// <FMi>   := FM module_or_frame_id ox oy [FLAGS hex_flags] [+Flags]
// Flags   := HYPER_FM | FLIP_X | FLIP_Y | ROT_90 | FREE_ROT

    FRAME "" // Index = 0, FModules = 1
    {
        0x2000
        FM	0x1000	0	0
    }

    FRAME "" // Index = 1, FModules = 1
    {
        0x2001
        FM	0x1001	0	0
    }

    FRAME "" // Index = 2, FModules = 1
    {
        0x2002
        FM	0x1002	0	0
    }

////////////////////////////////////////////////////////////////////////////////
// Animations...
// <Anim> := ANIM ["desc"] { id [<AF1> <AF2> ...] }
// <AFi>  := AF frame_id time ox oy [FLAGS hex_flags] [+Flags]
// Flags  := FLIP_X | FLIP_Y | ROT_90

    ANIM "" // Index = 0, AFrames = 3
    {
        0x3000
        AF	0x2000	200	0	0
        AF	0x2001	200	0	0
        AF	0x2002	200	0	0
    }

    SPRITE_END

} // SPRITE
////////////////////////////////////////////////////////////////////////////////

Oddly the versions of Aurora Game Tools and the related sprite editor are different.