tiles

March 13th, 2010 by Corey Holcomb-Hockin

I’m been learning about tiles and scrolling for the several days. I had trouble understanding addressing screenblocks and scrolling.

http://www.coranac.com/tonc/text/regbg.htm

Thats a pretty good explanation.

The example code from all_in_one was pretty hard to understand too. I put iprintfs in scroll4wayText to help me understand better what was going on. Bitwise ands aren’t something I’ve spent much time with so I had to spend a while figuring out what was going on with them. How they were used wasn’t as complex as I had feared. I still don’t understand the first part of this.

bgTemp[(offset_x & (bgWidth - 1)) + (iy & (bgHeight - 1)) * 32] =
Layer1024x1024Map[offset_x + iy * mapWidth];

I can visualize what I assume its doing but I can’t read it and understand the math. I’ve actually looked at the values of different things and still don’t quite get it.

I’m not going to worry about it for the moment and work on actual ground tiles. I going to experiment and try to find a style that I like. I need to work on pixel art in general.

Need to learn more about audio and audio compression on the ds. Wave files seem to be enormous. I didn’t think I’d be so limited. I haven’t worked with audio files in general. I’ve just used the ones included in nwn1-2. Sands of Destruction uses voice acting so I know it must be possible to include a large amount of audio. I’ll have to use the flash card to load it. I don’t know how slow that will be yet. Preloading to expansion ram might be another opinion.

The tile editor that comes with Pro Motion is able to find tiles in images. It was pretty entertaining to load up the metroid images from the coranac example and randomly change a level around.

compression test worked

March 5th, 2010 by Corey Holcomb-Hockin

I changed the woman part of the animate_simple example to use 16 color sprites and to use LZ77 compression. It worked perfectly in hardware, DeSmuME, and NO$GBA. It seems like I’ll be able to use it. I have to take note of how much room the sprite frames I’m decompressing take up in memory but its very easy.

It took me a while to figure out how the gfxIndex in SpriteEntry works. I still don’t understand how or if oamSet works with 2d bitmap mappings. I’m not planning to use them so it doesn’t matter at the moment.
SpriteMapping layouts

Learn about the NDS cache by looking through this search

February 19th, 2010 by Corey Holcomb-Hockin

Cache

Fun if you like reading about hardware.

Awesome Article

February 18th, 2010 by Corey Holcomb-Hockin

The Dust of Everyday Life: The Art of Building Characters by Takayoshi Sato

first try

February 16th, 2010 by Corey Holcomb-Hockin

I need to work on shading, among other things. I’m know a little about painting with textures but not so much about making them. Tiles are a lot like textures. I have many tutorials to go through. The screenshots of secret of mana 3 are impressive. I’ll probably have to work up to that. :P

bad sprite
iffy sprite

February 15th, 2010 by Corey Holcomb-Hockin

I got a reply from Liran Nuna about the decompression in ToD.

ToD uses a very unique trick to decompress data assets directly to VRAM.

There are two BIOS decompression routines, both using the LZ77 algorithm with 4096 bytes sized windows, the main difference is the unpacking.
One of the BIOS calls unpacks in 8bits – since the VRAM’s memory bus is 16bit wide, it is impossible to extract data to VRAM directly – that’s why there’s another call, which extracts either 16bit or 32bit according to your preference.

Many emulators do not emulate the VRAM safe method because no game uses it except ToD :D
I know that one revision of dualis had experimental support, but dualis is very very old by now…

If you want to have the most compatible code, you should extract to RAM and perform a copy to VRAM using either DMA or the CPU. The normal decompression routine is the same except for the header.
The bitwise shifts are infact that header, if you compose it in a special way, the BIOS performs a different window size decompression.

I’m still confused on how the example 16bit_color_bmp works in emulators and it also seems to write directly to vram. I looked at the some specifications but it didn’t clear anything up. It doesn’t include much of Liran Nuna’s description.

I’ll have to do experiments.

Finished the main bit of the encounter I was working on in NWN1. It worked the first time I tested it. It was pretty simple so that isn’t surprising. I still have to write some dialog and test if fireballs will make the good person go hostile. The combat needs to be harder too.

Started learning how to make pixel art. There are some good tutorials online. Most of them are working with higher resolutions then I’m planning to but they are still useful. I’ve been looking at the Chrono Trigger sprites too. They have many frames of animation. I’m going to have to limit my ambition. At least for a while.

Upgraded to Pro Motion 6. Its improved in many ways. Its the perfect tool for doing tile art on the DS. I need to actually learn how to use all the features though.

Idea I have now is a simple beat-up with sprites that uses the touch screen and controlpad or left buttons. The main character is going to use a spear. The two main attacks will be a stab and a swing. Tap for a stab, quarter circle for a swing. There might be a full circle swing too. It’ll probably be more of a prototype then a actual game.

I’ve been listening to some music in the mod format. The music that came with the maxmod example were chiptunes. I wanted to listen to more of it to see how usable it would be in a game. Most of it isn’t atmospheric. The mods I got were mostly dance music. There are a few old game soundtracks that get covered often too. Commando, Monty on the run, few other ones that I haven’t figured out yet. Most of its very impressive even if it isn’t what I”m looking for. I wonder how many musicians want to work on a random not for profit game which will be played by a limited audience?

Hopefully not that limited.

Need to figure out how the filesystems work. I think my actual rpg project might not be playable on a emulator if I have a lot of data. I don’t really know yet.

Headsoft retro homebrew is all very impressive. I remember it got on gamesetwatch. That impresses me anyway. I really suck at Manic Miner.

February 5th, 2010 by Corey Holcomb-Hockin

Tales of Dagur’s code is older then the current version of libnds. I might convert it to the new library or just learn from the things that haven’t changed. I’m just going through the libnds tutorials and source randomly at the moment.

I saw many unfinished projects as I randomly looked through a list of ds homebrew for rpgs. It was a graveyard of projects.

and here we go

February 2nd, 2010 by Corey Holcomb-Hockin

I’m just starting with ds homebrew development. I won’t get a flash cart for a week. I have devkitpro installed.

I’ll just be using emulators for now. A post on the devkitpro forums it sounds like there are some differences in running on a emulator and on a ds. I don’t know all the details yet. I plan on making my released stuff playable on an emulator. We’ll see how possible that is later.

Tales of Dagur isn’t playable on a emulator. I’m reading through its source code but I don’t know what the game looks like yet. I’m just guessing based on the tiles. They are nice tiles but they are from RPGmaker. There is a thread on some random website where people think it was made in RPGmaker. Kind of funny/sad.

I’m going to try to make new art for anything I release but it will take a while. I have a copy of Pro Motion lite 4.5 from when I was working on the Cybiko. I can’t say I spent much time learning how to make nice art though. Cybiko was 4 color grey scale with one color optionally transparent. I think I made a grey little guy and some grey grass.

Tales of Dagur isn’t playable on a emulator because it uses “uses LZ77 compression which none of the emulators support”. Glancing at the source code I’m assuming that the tiles and backgrounds are what are compressed. This is the best link I could find about compression . I’m not sure how necessary it is at the moment. I also found some reference in a NO$GBA changelog about LZ77 compression. So I’m a little confused to why a small homebrew game is using unemulated compression while big published games aren’t or are using some different kind. I still have to find out the details.

I’m still finishing off Deadening 3 for nwn. I haven’t been working on it as much as I should. I have to write dialog, script, and plan events. Its all basically in my head but not really in a complete state. Working on a short bit where you find a woman fighting some skeletons and one of the skeletons summons a fire elemental from a furnace. Its mostly just there because there is a awesome bassy furnace sound in nwn. I originally planned to have the woman running but I think it was more interesting to have some of the characters trying to survive. I’m also going to try to make interesting moments between the characters. A cowardly barmaid sounded cliche.