My next goal for this game is to reduce that size by messing with the map.tmx and configuration. Defmap.asm seems to be the area I want to concentrate on.
define bitsym 5 define bithlf 1 define mapw 12 define maph 2 define scrw 15 define scrh 10
The first 2 definitions bitsym and bithlf do not make any sense to me, so a quick search on the mojon twins forums show.
As I work with Tiled, I use the TmxCnv tool that is already correctly prepared to hide the original map:
It can also be modified by hand mapa.h, but it is the least advisable. It is very important to take note of the bitsym and bithlf values that TmxCompress returns to us, since we will have to pass them manually later to the DMAP_BITSYMB and DMAP_BITHALF directives of config.h Change number 2. The file config.h This file is the simplest of modify, you just have to add these 4 lines anywhere in the file:
#define COMPRESSED_MAPS #define DMAP_BITSYMB 4 #define DMAP_BITHALF 0 #define DMAP_BUFFER 0x5b01
Obviously the constants DMAP_BITSYMB and DMAP_BITHALF must be modified with the values
suggested by the map compressor.
Now this refers to the Mojon Twins Churrera, but it gives us a bit of a clue on what the definitions are used for.
The line in the make.bat that uses TMXCompress is
lib\bin\TmxCompress gfx\map.tmx build\map_compressed.bin > build\defmap.asm
TMXCompress takes the map found in gfx\map.tmx, it compresses the map and pushes the output to build\map_compressed.bin. Furthermore it generates variables and pushes them to defmap.asm.
So, in theory, all I have to do is modify the map and compressed.bin should change size and the variables in defmap.asm should also change.
If in doubt, I made a backup of the original just in case I mess it all up.
I open map.tmx (By the way, you need a copy of tiled map editor at
Go to map – resize map and change from 21 tiles high to 11 tiles high. Save that bad boy and lets recompile.
And.. nothing. To quote qbert @!#?@!
Not saying that defmap didn’t get modified, it just got modified with the exact same definitions, so the maph definition should have changed, it didn’t.
The game size changed to 27,203, which is interesting, but none of the other definitions changed like I expected.
Found the error and it was my goofup. Make the map size in Tiled to 10 tiles high instead of 11.
Go to map – resize map and change from 21 tiles high to 10 tiles high. Save it and lets recompile again.
So, now defmap.asm shows
define bitsym 5 define bithlf 1 define mapw 12 define maph 1 define scrw 15 define scrh 10
The file size changed to 27,168.
I’m going to make a very quick change to main.c to change the end game to killing 2 enemies so I can see the end screen, this is only to quicken the testing.
The line to be modified is
if( killed==10 )
I’ll change that to
if( killed==2 )
Now, let’s resize that map again.
Go to map – resize map and change from 191 tiles wide to 15 tiles high. Save it and lets recompile again.
Tap size is 26,637
Test and “Winner Winner Chicken Dinner”!
Defmap.asm is showing the proper values. Morning mission over.