Decoding of iPhone game gold miner map format and editing

Source: Internet
Author: User

GF is fascinated by gold miners in iPod games, so they usually play with them. But this game is really boring, and it can't help but make people think twice.

Because the program is not a Windows platform, decompilation is too difficult and unnecessary. The main focus is on modifying archives and maps. Use the 91 mobile assistant to view the files under MACOs and easily find the folder corresponding to Le goldenminer under/usr/applications. Click the Files folder to archive the files. I wrote it in XML, which is very friendly to the modifier. I used notepad to change the money to 1,000,000, And the progress can also be changed at will. Well, the gameplay is completely lost. Further explore the game folder, find a lot of resource image files, and try to replace the Gold Icon with a GF photo.

Of course, these are some low-level tricks to play some advanced things. Further searching found many mapxxx. HMB files. There is no doubt that there is a map. It seems that there are 300 off, but it cannot be seen that the game scale is quite large ~ Use ultraedit to open a file. You can find that the file is not complex.
 
During the game, we found that the 100th Mark had the potential to be mined because there were only three kinds of items: Explosive barrel, jumping mouse, and diamond mouse. Open the 100th off map with the following content:

 
The front structure is easy to understand. The game time is 60 seconds, the background is aozhou.png, and the amount of money required for pass is 114794 (this is a bit mismatched. This is the amount of money required for pass through map99.hmb ). The following is the map structure. This part of the structure is very simple, 4 bytes is a group, obviously an integer number, a total of 52. The key to cracking the map structure is to understand how the 52 numbers describe the item distribution. Considering that this map has four jump rats, five diamond rats and eight explosives buckets, a total of 17 items are not about 52, therefore, it does not seem to be stored as "a fixed length record for each item. We can observe that most integers are less than 0xff, but some are in the second low byte, Which is 01 rather than 00. Can these integers be separators? After a short period of excitement, I found a total of seven "01", a rather embarrassing number, and it was hard to come up with any special meaning. There was a deadlock in reasoning.

Since there is no way, you can think from another perspective. If I develop thisProgramHow can we design it? There are two most intuitive solutions: one is to divide the entire map into grids of the same size, such as 10*8 small cells, and then record the types of items placed in each cell in sequence. The feature of this solution is that all map files must be of the same size, and an integer indicating "nothing at the location" is frequently displayed. This conflicts with the situation of map files, so it is unlikely. Another solution is to record the category of each item and the coordinates of other parameters. Although 17 is not a 52 divisor, this solution is still possible because not all subsequent records are used to describe the distribution of items. Because there are not many types of items in the game, there are only about 20 items in the first 100, so if this scheme is used, the item ID record will inevitably be a relatively small number. Looking at the subsequent data from this perspective, we will find a very obvious rule: these numbers are in a group of three, and the first one is very small (generally less than 0x10 ), the last two are relatively large (or even greater than 0x100 ). An extra 0x0f is generated. The resulting 0x0f is strange. Isn't it the legendary Terminator? Call out map1.hmb and check that the last number is 0x0c, so it is not like a fixed Terminator. That seems to be the first number. In map100, the first number is 0x11, that is, 17 in decimal format. 17. familiar figures. There are 17 items! Happy! The Secret of game maps has also been broken. The first section records the game time, background, pass requirements, and other parameters, and then keeps up with the number of items. Next, it records the information of each item in the format of <item category, abscissa, and ordinate>. According to the test, the coordinate origin is located in the lower right corner of the screen, measured in pixels.

With this information, you can create a map editor. You can write one in 20 minutes using WPF:

Upload the generated map file to the iPod to see the effect:

 

It is quite fun for gold miners to do this. This is the case for students in the computer department to play games ~ :-) Of course, there are a lot of Lucky ingredients, such as map files that are easy to find, and almost plaintext files are not encrypted. If you want to play more deeply, you have to work hard. Grace, it is better to have more fun in the professional industry. :-)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.