Coranac

new tonclib

2007-10-05 – 22:55 | .

I've been making a lot of changes to tonclib – mostly adding, but also some removals. The most important changes are:

  • A more unified interface for the base drawing routines. Whereas I used to have something like bm8_foo(...), I now have bmp8_foo(..., void *dstBase, u32 dstPitch) for everything. Although the extra parameters make the routines a little slower, it makes it easier to switch video-modes.
  • A few color routines like blending/fading, convert to rgbscale (like grayscale, but for any color vector) and a few color adjustments.
  • I'm trying to include (well, annex, really) some of libgba's functionality. In terms of shared functionality, the libgba names can be used by including tonc_libgba.h. This is definitely not a finished item yet.
  • Tonc's Text Engine. I already had some basic routines for text on different video types, but this is a good deal better. Instead of having separate foo_puts() routines, TTE uses function pointers for placing glyphs on screen. This means there can be a single interface for all modes, and customizable writers. Already provides are glyph renderers for 8/16bit bitmaps and 4bit tiles, using a 1bpp bitpacked font. In principle, the renderers can handle any sized fixed and variable-width fonts (within reason: 128x128 fonts would be impractical, for example). There are also hooks for the stdio functions (printf, yay!) and some simple commands for positioning, color and font changes. Example of use:
    // Set-up 4bpp tile rendering bg 0 using cbb=0 and sbb=31.
    // The default options set implicitly here are: verdana 9 font, yellow for 
    // text color
    tte_init_chr4_dflt(0, BG_CBB(0)|BG_SBB(31));
    // Init stdio hooks
    tte_init_con();
    // Print something at position (10,10)
    iprintf("\\{P:10,10}'Ello world!, %d", 1337);
    
    Aside from the initializer, using TTE is basically independent of what you're writing with or on. Of course, all this stuff does have a fair amount of per-character overhead (about 150 cycles, I believe). It shouldn't be too hard to port TTE to NDS; I am planning to do this at some point.

There are more smaller changes here and there, but those are of lesser consequence.


tonclib 1.3 linky.

More tonc 1.3β

2007-02-17 – 0:00 | .

Dammit, just missed releasing this before the end of the day. Oh well. Anyway, I'm releasing tonc 1.3β officially now. Yes, it's still a beta, but I think I've got rid of all of the loose ends now. Or at least most of them

The changes with the last beta version are relatively few. The text remains mostly the same, except for regbg.htm and asm.htm. It's in the code where you'll find the most changes. I've removed the leading underscores from the zero-#defines (and there was much rejoicing), updated some graphics and ‘finished’ the bigmap demo. Also, tonclib is now fully doxygenated. Manual in CHM inside. The Doxygen configuration file is included, so if the CHM doesn't work for you, you can always generate the documentation yourself.

tonc 1.3β

2007-01-24 – 16:00 | .

I'm close to another tonc release. It's not quite ready, but here are a few Work-in-Progress versions.

Many things have changed. Tonclib has gone through a rigorous overhaul, the demo hierarchy has been altered, with new and better makefiles. Most demos have been altered (mostly just using text), the ‘basic’ demos are now completely self-contained, and I've added a couple of new ones as well. Take particular note of the updated DMA and mode7_ex demos, and the new bigmap demo.

The text has undergone a few changes as well. Much of the set-up chapter has been moved to the back, and reg-tables have been prettified. The mode7-2 chapter has been enhanced and (drumroll) there's now an assembly chapter! A big assembly chapter. The numbering system now has chapter numbers, and each section, equation, etc, is now prefixed with it.

You might have noticed that there's now a PDF file as well. I've merged all the chapters with some perl-fu, and printed to PDF with cutePDF. The solution is not optimal yet (some bad page breaks here and there), but the result looks very nice indeed. If anyone's interested in helping me get rid of the page-break problem, I have 1.4MB html file if anyone's interested playing with that. I'll probably release the scripts I used for various items as well someday.


In other news, git 0.6 didn't quite do the NDS transparency bit correctly. In fact, it completely did it wrong. I'd release the fix soon, if it weren't for the fact that it will probably be released as part of the new devkitPro before that.


« Previous Page

Powered by WordPress