I learned everything, after many failures, from Locke's post located here:
http://howardforums.com/showpost.ph...01&postcount=51
This thread is intended for people that have no prior experience with hex editing, for people looking to add games and applications to their Snapper, and also for me in case I forget how to do this.
Since I haven't found much more information on doing this other than his guide, I decided to make an easier to follow guide. I will also include some games and applications that I got working towards the end.
I am using BitPIM v0.7.28. You can find it at sourceforge. The Snapper WILL work with newer versions, however, I couldn't get it to make subdirectories. 0.7.28 allows you to do that.
In order to use games/applications, you will need a .jar file, .jad file, content.dat file, and a settings.bin file. I don't think you really need to place a settings.bin file into the subdirectory as I have found it will just make one if there is not one in there.
You will need a HEX editor. Any free one should work fine. You will also need a HEX Character list (Google) if your HEX editor does not include one.
Regarding the icons for the games, you can edit the .jad to display an icon. Sometimes, there will be an icon in the .jar file if you extract it.
1.)First of all, find a .jar file that is not for Nokia. You can tell if it is for Nokia phones if the .jad file has information other than the regular one, which I will display later. You can find "generic" .jars at
www.midlet.org or just by google'ing around.
2.)If the .jar you want does not have a .jad, use this program to make the .jad:
http://www.geocities.com/mangokun/jadmaker/jadmaker.htm
3.)Now that you have the .jar and the .jad file, you can begin editing the .jad. This is the most time consuming part of the process. After doing this, it flies by.
This is the original .jad of the application Compass:
Code:
00000000:4d 49 44 6c 65 74 2d 31 3a 20 43 6f 6d 70 61 73 MIDlet-1: Compas
00000010:73 2c 20 2c 20 43 6f 6d 70 61 73 73 0d 0a 4d 49 s, , Compass..MI
00000020:44 6c 65 74 2d 4a 61 72 2d 53 69 7a 65 3a 20 35 Dlet-Jar-Size: 5
00000030:32 38 30 0d 0a 4d 49 44 6c 65 74 2d 4a 61 72 2d 280..MIDlet-Jar-
00000040:55 52 4c 3a 20 68 74 74 70 3a 2f 2f 6d 69 64 6c URL: http://midl
00000050:65 74 2e 6f 72 67 2f 72 65 70 6f 73 69 74 6f 72 et.org/repositor
00000060:79 2f 61 6e 64 72 65 77 70 61 72 72 2f 63 6f 6d y/andrewparr/com
00000070:70 61 73 73 2f 63 6f 6d 70 61 73 73 2e 6a 61 72 pass/compass.jar
00000080:0d 0a 4d 49 44 6c 65 74 2d 4e 61 6d 65 3a 20 43 ..MIDlet-Name: C
00000090:6f 6d 70 61 73 73 0d 0a 4d 49 44 6c 65 74 2d 56 ompass..MIDlet-V
000000a0:65 6e 64 6f 72 3a 20 41 6e 64 72 65 77 20 50 61 endor: Andrew Pa
000000b0:72 72 0d 0a 4d 49 44 6c 65 74 2d 56 65 72 73 69 rr..MIDlet-Versi
000000c0:6f 6e 3a 20 31 2e 30 0d 0a 0d 0a on: 1.0....
This is a "generic" .jad and will work with the phone.
For a comparison, this is a Nokia .jad:
Code:
00000000:4d 61 6e 69 66 65 73 74 2d 56 65 72 73 69 6f 6e Manifest-Version
00000010:3a 20 31 2e 30 0d 0a 4d 69 63 72 6f 45 64 69 74 : 1.0..MicroEdit
00000020:69 6f 6e 2d 43 6f 6e 66 69 67 75 72 61 74 69 6f ion-Configuratio
00000030:6e 3a 20 43 4c 44 43 2d 31 2e 30 0d 0a 4d 49 44 n: CLDC-1.0..MID
00000040:6c 65 74 2d 4e 61 6d 65 3a 20 32 46 61 73 74 32 let-Name: 2Fast2
00000050:46 75 72 69 6f 75 73 0d 0a 4d 49 44 6c 65 74 2d Furious..MIDlet-
00000060:49 63 6f 6e 3a 20 2f 69 2f 69 63 2f 69 63 6f 2e Icon: /i/ic/ico.
00000070:70 6e 67 0d 0a 4d 49 44 6c 65 74 2d 56 65 6e 64 png..MIDlet-Vend
00000080:6f 72 3a 20 77 77 77 2e 76 73 74 75 66 66 2e 63 or: www.vstuff.c
00000090:6f 2e 75 6b 0d 0a 4d 49 44 6c 65 74 2d 31 3a 20 o.uk..MIDlet-1:
000000a0:20 32 46 61 73 74 32 46 75 72 69 6f 75 73 2c 20 2Fast2Furious,
000000b0:2f 69 2f 69 63 2f 69 63 6f 2e 70 6e 67 2c 20 46 /i/ic/ico.png, F
000000c0:61 73 74 46 75 72 69 6f 75 73 4d 49 44 6c 65 74 astFuriousMIDlet
000000d0:0d 0a 4d 49 44 6c 65 74 2d 56 65 72 73 69 6f 6e ..MIDlet-Version
000000e0:3a 20 31 2e 30 2e 30 0d 0a 4d 69 63 72 6f 45 64 : 1.0.0..MicroEd
000000f0:69 74 69 6f 6e 2d 50 72 6f 66 69 6c 65 3a 20 4d ition-Profile: M
00000100:49 44 50 2d 31 2e 30 0d 0a 4d 49 44 6c 65 74 2d IDP-1.0..MIDlet-
00000110:4a 61 72 2d 53 69 7a 65 3a 20 37 35 30 36 36 0d Jar-Size: 75066.
00000120:0a 4d 49 44 6c 65 74 2d 4a 61 72 2d 55 52 4c 3a .MIDlet-Jar-URL:
00000130:20 32 46 61 73 74 32 46 75 72 69 6f 75 73 2e 6a 2Fast2Furious.j
00000140:61 72 0d 0a 4e 6f 6b 69 61 2d 4d 49 44 6c 65 74 ar..Nokia-MIDlet
00000150:2d 43 61 74 65 67 6f 72 79 3a 20 47 61 6d 65 0d -Category: Game.
00000160:0a .
4.)Now you can edit the .jad to work with the Snapper. To do this, place ".." before AND after ALL of the "Midlet xxx" names. So now it should look like this:
Code:
00000000:2e 2e 4d 49 44 6c 65 74 2d 31 2e 2e 43 6f 6d 70 ..MIDlet-1..Comp
00000010:61 73 73 2c 20 2c 20 43 6f 6d 70 61 73 73 0d 0a ***, , Compass..
00000020:4d 49 44 6c 65 74 2d 4a 61 72 2d 53 69 7a 65 2e MIDlet-Jar-Size.
00000030:2e 35 32 38 30 0d 0a 4d 49 44 6c 65 74 2d 4a 61 .5280..MIDlet-Ja
00000040:72 2d 55 52 4c 2e 2e 68 74 74 70 3a 2f 2f 6d 69 r-URL..http://mi
00000050:64 6c 65 74 2e 6f 72 67 2f 72 65 70 6f 73 69 74 dlet.org/reposit
00000060:6f 72 79 2f 61 6e 64 72 65 77 70 61 72 72 2f 63 ory/andrewparr/c
00000070:6f 6d 70 61 73 73 2f 63 6f 6d 70 61 73 73 2e 6a ompass/compass.j
00000080:61 72 0d 0a 4d 49 44 6c 65 74 2d 4e 61 6d 65 2e ar..MIDlet-Name.
00000090:2e 43 6f 6d 70 61 73 73 0d 0a 4d 49 44 6c 65 74 .Compass..MIDlet
000000a0:2d 56 65 6e 64 6f 72 2e 2e 41 6e 64 72 65 77 20 -Vendor..Andrew
000000b0:50 61 72 72 0d 0a 4d 49 44 6c 65 74 2d 56 65 72 Parr..MIDlet-Ver
000000c0:73 69 6f 6e 2e 2e 31 2e 30 0d 0a 0d 0a sion..1.0....
Note that the ": " were replaced. Just overwrite the things. If there were two ".." there before, just leave them. If something ended in ".", add another one to make it "..".
5.)This is what you have to do now. In all of the ".."'s that you made, go over to the left side and make the first "." to be "00". It should now look like the following image. Also, at the end of the file, after the version number, add four "....". If the version was "1.0..." disregard the "..." and just make sure there are four. On the left side, make the four "...." to be "FF FF FF FF":
Code:
00000000:00 2e 4d 49 44 6c 65 74 2d 31 00 2e 43 6f 6d 70 ..MIDlet-1..Comp
00000010:61 73 73 2c 20 2c 20 43 6f 6d 70 61 73 73 00 0a ***, , Compass..
00000020:4d 49 44 6c 65 74 2d 4a 61 72 2d 53 69 7a 65 00 MIDlet-Jar-Size.
00000030:2e 35 32 38 30 00 0a 4d 49 44 6c 65 74 2d 4a 61 .5280..MIDlet-Ja
00000040:72 2d 55 52 4c 00 2e 68 74 74 70 3a 2f 2f 6d 69 r-URL..http://mi
00000050:64 6c 65 74 2e 6f 72 67 2f 72 65 70 6f 73 69 74 dlet.org/reposit
00000060:6f 72 79 2f 61 6e 64 72 65 77 70 61 72 72 2f 63 ory/andrewparr/c
00000070:6f 6d 70 61 73 73 2f 63 6f 6d 70 61 73 73 2e 6a ompass/compass.j
00000080:61 72 00 0a 4d 49 44 6c 65 74 2d 4e 61 6d 65 00 ar..MIDlet-Name.
00000090:2e 43 6f 6d 70 61 73 73 00 0a 4d 49 44 6c 65 74 .Compass..MIDlet
000000a0:2d 56 65 6e 64 6f 72 00 2e 41 6e 64 72 65 77 20 -Vendor..Andrew
000000b0:50 61 72 72 00 0a 4d 49 44 6c 65 74 2d 56 65 72 Parr..MIDlet-Ver
000000c0:73 69 6f 6e 00 2e 31 2e 30 ff ff ff ff sion..1.0˙˙˙˙
6.)The HEX Character list comes in now. You have to count up the preceding field letters/numbers, like "MIDlet-1" for example would be eight characters. Now what you do with that is look at a HEX Character list and look for what the hexidecimal would be for 8. It would be "08" Go to the left side and in the second ".." (remember the first "." you made a "00") that you made before each one, put the hexadecimal value for the preceding field value. So the first two ".." would be 00 08. Do this for ALL of your ".." If you get lazy, you can copy/paste the field letters/numbers into Word or open office and do the word count. It will say the character count. This is your "decimal" value to look up on the HEX character list. Remember, just match the decimal and the hexadecimal values. The file should now look like this:
Code:
00000000:00 08 4d 49 44 6c 65 74 2d 31 00 12 43 6f 6d 70 ..MIDlet-1..Comp
00000010:61 73 73 2c 20 2c 20 43 6f 6d 70 61 73 73 00 0f ***, , Compass..
00000020:4d 49 44 6c 65 74 2d 4a 61 72 2d 53 69 7a 65 00 MIDlet-Jar-Size.
00000030:04 35 32 38 30 00 0e 4d 49 44 6c 65 74 2d 4a 61 .5280..MIDlet-Ja
00000040:72 2d 55 52 4c 00 3b 68 74 74 70 3a 2f 2f 6d 69 r-URL.;http://mi
00000050:64 6c 65 74 2e 6f 72 67 2f 72 65 70 6f 73 69 74 dlet.org/reposit
00000060:6f 72 79 2f 61 6e 64 72 65 77 70 61 72 72 2f 63 ory/andrewparr/c
00000070:6f 6d 70 61 73 73 2f 63 6f 6d 70 61 73 73 2e 6a ompass/compass.j
00000080:61 72 00 0b 4d 49 44 6c 65 74 2d 4e 61 6d 65 00 ar..MIDlet-Name.
00000090:07 43 6f 6d 70 61 73 73 00 0d 4d 49 44 6c 65 74 .Compass..MIDlet
000000a0:2d 56 65 6e 64 6f 72 00 0b 41 6e 64 72 65 77 20 -Vendor..Andrew
000000b0:50 61 72 72 00 0e 4d 49 44 6c 65 74 2d 56 65 72 Parr..MIDlet-Ver
000000c0:73 69 6f 6e 00 03 31 2e 30 ff ff ff ff sion..1.0˙˙˙˙
7.)OK, now that you have the .jad formatted correctly, you must make a content.dat file. Personally, I would suggest you just keep a "template" of one (Like the one below) and overwrite or insert as needed.
All games/applications follow this format.Separating fields are "." which are 00. This the content.dat I made for Compass:
Code:
00000000:2a 00 00 00 31 37 31 00 43 6f 6d 70 61 73 73 00 *...171.Compass.
00000010:61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 61 76 61 application/java
00000020:2d 61 72 63 68 69 76 65 00 35 36 32 37 00 31 2e -archive.5627.1.
00000030:30 00 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 0.Sun Microsyste
00000040:6d 73 00 49 2f 67 61 6d 65 73 2f 31 37 31 00 63 ms.I/games/171.c
00000050:6f 6d 70 61 73 73 00 4e 2f 41 00 4e 2f 41 00 4e ompass.N/A.N/A.N
00000060:2f 41 00 31 00 00 /A.1..
All you have to do is change the subdirectory number (in this case it is 171) to the correct order need for your phone. In /I/games, you have folders that go up like 11, 21, 31, etc. You must change the number in the content.dat t o the correct folder number. If the last game folder on your phone is 61, you must change the content.dat of the game/application you are adding to 71. You also have to change the name to the appropriate MIDlet-name in the .jad for the game/application. Towards the end of the file, you will notice another /171/Compass. I do not think you have to change this, but it is wise just to do it. I am saying that because for some of my games, I did not edit the second /number and it worked fine. So, change the folder number to the correct value need for your phone, change the name to the correct name needed for the program, and also the last number/name.
8.)After looking at how to setup the fields in the content.dat file of the application you are adding, you must do one last thing. The first symbol on the left side indicates the number of the first four fields, the content number. These are the fields you should be looking at (they are the first four):
Code:
00000003:00 31 37 31 00 43 6f 6d 70 61 73 73 00 61 70 70 .171.Compass.app
00000013:6c 69 63 61 74 69 6f 6e 2f 6a 61 76 61 2d 61 72 lication/java-ar
00000023:63 68 69 76 65 00 35 36 32 37 chive.5627
There are 42 characters which would be 2A for the first symbol. I should also note that the vendor thing does not matter. You start counting at the "." before the folder name and END at the last number of the file size. DO NOT count the last "." after the file size. Now that you know how to create a content.dat, you can also EDIT the ones I have hosted as mine are mostly past 101. So, you will have to edit the folder numbers to your need and CHANGE the first symbol to the appropriate hexadecimal. Remember, look at a hexadecimal list to correspond to the number of the first four fields. The last field is the size, in this case 5627 bytes. To find the size, add up the total number of bytes of the .jad, .jar, content.dat, and the settings.bin (39 bytes).
9.)Now that you have the .jar, the .jad, and the content.dat ready, you can proceed to put it on your phone. Open BitPIM and view the filesystem. Go to /I/games.
Make sure you have the correct folder number you put in the content.dat of the file you are adding to match the correct folder you are putting it in. Rename the .jar and the .jad file to "suite" (suite.jad for the .jad) and the .dat file to "content.dat" (in case you renamed it).Take a settings.bin file from another game and insert it into the folder you made. Then place the suite.jar, suite.jad, and the content.dat in there along with it.
10.) Delete the folder.dat file that is in the game directory. It is generated each time the phone starts up. Restart the phone and check out the games to see if it worked.
I am including games/programs that I formatted for the Snapper by myself.
Remember, don't just add these straight to your phone. Make sure the folder number in the content.dat of each of these matches the correct one on your phone. Also, make sure that when you change the folder number, you change the first symbol to the correct hexadecimal value.
Pman:
home.comcast.net/~amtraker47/miscellaneous/Pman.zip
Asteroids:
home.comcast.net/~amtraker47/miscellaneous/Asteroids.zip
Compass:
home.comcast.net/~amtraker47/miscellaneous/compass.zip
Pong:
home.comcast.net/~amtraker47/miscellaneous/pong.zip
Swarm (similar to Galaxa or Galaga from VM, but not $6):
home.comcast.net/~amtraker47/miscellaneous/swarm.zip
Ski:
home.comcast.net/~amtraker47/miscellaneous/ski.zip
Minefield (like Minesweeper):
home.comcast.net/~amtraker47/miscellaneous/minefield.zip
LasDamas17 (Checkers in Spanish):
home.comcast.net/~amtraker47/miscellaneous/LasDamas17.zip
I got Frogger working, but it was a 30 day trial. I got Webster's Dictionary working, but it had to connect to the network so it didn't work. I did not buy any of these and these are all freeware/shareware, just formatted for the Snapper.
If you have any questions or have games that you formatted for the Snapper, please post in this thread.
Regarding "messing" up your phone, I have put in wrongly edited .jad and content.dat files when I tried to add things and my phone was fine. The program just won't run. It will say, "Choose program to run" or something like that, with nothing to select. That is when you did something wrong. I have accidentally selected .zip files to go on my phone and BitPIM would just crash before putting the file on the phone.
http://www.vox8910.ca.tt/ has a list of games that will supposedly work with the Snapper. If you can find the
non-Nokia versions of these and post here, that would be helpful.