I was inspired to import map data from an ancient console favorite. I was hoping to find a grid of single byte values in the ROM image. Searching the file for in-game rock patterns in rows didn't turn up any hits. Searching for column patterns did sometimes but the columns themselves were never in any comprehensible order. This hacking guide explains most of how game screens are built with pre-assembled (and further compressed) 11 square columns to save space. There are a number of other compression methods like storing palettes seperately for the center of the screen and for the outer two rows. These methods must have complicated design and also dictated the final product to some extent but even so the resulting "overworld" map is skillfully crafted.
P.S. I should add that I wasn't able to reconstruct 100% of the column tables and ended up just repairing them manually. The hacking guide doesn't mention that if a new column is started before the previous column is described in full that the first tile or double tile of the next column in that column table will also be rendered where the previous column left off. If the previous column still hasn't been fully described then I'm not sure where the remaining tiles are coming from. Not from anywhere in that column anyway. Also instead of 4 duplicate screens there are 7: A7->A9, A12->D13, D10->E3, E3->E4, F16->E16, A7->H11, H13->H14.
Monday, January 26, 2009
Friday, January 23, 2009
OpenAL works fine, the 3rd pc that had problems just needed to run the installer. Spent some time on procedural animation and movement AI but a natural solution hasn't presented itself yet. Completely reworked water. The animation is made from only a 3x3 quad grid now and the pattern is much improved. The water is also now "intelligent" in that it will be drawn with wavy edges on any border adjacent to land. This outline is then extruded into the ground and shaded to create an embankment.
Monday, January 19, 2009
Ported my project to SDL and implemented basic sound support using OpenAL. I didn't like the look of the sound portion of SDL so I spent some time with OpenAL. OpenAL is only working on two out of three machines, I hope it works out. SDL freezes when VC Express enters debug mode unless you enable the SDL_INIT_NOPARACHUTE flag AND stay out of fullscreen mode. A minor inconvenience made a little worse by outdated documentation. The mouse event handling also creates an issue with my code in fullscreen mode but not in window mode.
Friday, January 16, 2009
Cleaned up the actor rotation code while hunting down a bug. Added hit detection on the map so actors can't move through graphical tiles anymore. I've got fullscreen, double buffering, mouse, keyboard, and gamepad working in my SDL / OpenGL test build but haven't ported my project code yet. SDL reference documentation is almost as good as OpenGL documentation but as usual I will need to ask some questions in a dev forum. It looks like basic sound support is pretty easy to implement. I think I'll try that soon and then move on to OpenAL later.
Tuesday, January 13, 2009
Projected cursor onto game board for much improved user interface. Started implementing vertex buffer objects because I'd like to get into the habit of always using them but display lists are too easy to resist putting off VBOs. Made a quick water animation out of a 4x4 quad grid and made a "classic" color palette. I also gave the SDL library a serious look and eventually compiled my first app using SDL/openGL. I think I will move my code over from GLUT soon.
Subscribe to:
Posts (Atom)








