Stoppt die 
Vorratsdatenspeicherung! Jetzt klicken & handeln!

So, over the weekend, I went to Evoke. Evoke, for those who don’t know, is a Demoparty, a sort of gathering for people who write Demos to get together, show off their newest works in the competitions, talk, and potentially get mightily drunk.

We didn’t actually plan to release anything at the party, but after arriving after a 4ish-hour-drive (Drove there with Maep and Saga_Musix, took a few wrong turns… <.<) I suddenly felt like coding something up for the DS. WAHa_06x36 and coda were availble to assist with additional effects, graphics work and music, so in 16 hours of intense partycoding, during the course of which I downed half a crate of club mate and nearly threw up my breakfast, we’re able to give you:

[Pouet] [Non-live video]

Our release was generally well-redieved, and finished second in the “Alternative Plattform” compo. We even got Prizemoney this time around, which was a little unexpected.

One of my favourite demos of the whole party was this 64k intro (It’s 64k, despite what it says in the video). Beautiful use of… cubes! It won, too! <3

Something I sadly only found after the party was over is the full version of this years party jingle, mmsx#001 - dq feat. scraping micha - this year. Absolutely lovely.


In conclusion, Evoke 2010 was an awesome party, massive thanks to the organizers - especially to the beamteam for the recording, you’re awesome - and to brainstorm for free sausages and alcatraz for free beer. o/

The next demoparty for me will probably be the 2010 edition of the ultimate meeting, right here in Karlsruhe, or maybe a party up in finnland! See you there!

A friend recently had a problem with a cameras flash card that had become unreadable after he pulled it out of his computer without unmounting properly first - the FAT file system had become corrupted and his images had become unreadable.

Luckily, he found saveimg, a tool to restore pictures from broken FAT file systems. Annoyingly, this tool only deals with JPG files, and his camera is a NIKON cam that takes picture in Nikon RAW (NEF) format.

I modified the tool to deal with those, in addition to dealing with JPG files, just like the original. Usage is the same as the original saveimg, read up on how to use it there.

re: 1 (view/add your own)  / about : , ,

(Yeah, crossposting formspring.me questions is the cool new thing.)

Most likely social democrat (SPD). Possibly Pirates. I am not up to date enough with North-Rhine Westphalian politics to say for sure.

I can say, though, that I enjoy the current result projections. Red-Green in NRW would be ideal, for several reasons:

1) First and foremost: Goodbye CDU/FDP Bundesrat majority. The Bundesrat is a gremium made of representatives of all german states. It can block a lot of legislation. It will, from now on, most likely be able to block things, because the governing parties (CDU [right-conservative] / FDP [libertarian/rich-people-party] will not have a majority anymore. This means, amongst other things: Goodbye to plans for Kopfpauschale (Highly associal crap, IMO, if you’re curious, ask and I’ll try to explain it as I understand it) and goodbye to plans for longer nuclear power plant runtimes. :3

2) Real chances for school system reform in NRW, and consequently, other places. Same goes for tuition fees. NRW sacking tuition fees could help us here in BW a LOT.

3) It’s a nice signal that the german left (Political direction, not the party) is back.

Oh, also, the Pirate Party got a nice 2%-ish result. That’s okay. :3

re: 0 (view/add your own)  / about :

Q: Please tell me a story. One involving a unicorn and a talking ham sandwich if it isn’t too much trouble.
A: Sure. Story time.

Ham

Alex didn’t immediately realize something was a little bit off with the world. In retrospect, the talking ham sandwich he had for breakfast should have been a dead giveaway, but, it being a Saturday morning, he attributed that to his lack of sleep and the drugs, and went on about his business as if nothing had happened.

His business kept him occupied and glued to his computer screen most of the time - even today, on a stormy 1st of may - traditionally a federal holiday where he lived. Alex, you see, worked as a “Senior Systems Analyst and Administrator” for the european divison of HardNet incorporated, or, as he liked to put it, he was in the business of pumping out tens of thousands of gigabytes of hardcore bondage pornography at three hundred fucking megabit per second, fuck yeah, baby. Not that any of that mattered much anymore, though, now that he was dead.

Most people had always thought that the apocalypse would come in form of some man- or god-made earth shattering kaboom. When the apocalypse came, later that morning, about 2 hours after Alex had put half of the now-quiet sandwich back into the fridge, it came in the form of unicorns. The first people to spot the unicorns were scientists at NASAs near-earth-object observatory with their telescopes, detecting them hurling for the earth at awesome speeds, accelerating as they neared the blue planet. Upon reporting their findings to the US government officials responsible for such things, they were promptly told that ha ha ha ha yeeeeeah, right, why don’t you shoot our care bear beams at them?

When the unicorns became visible to the naked eye a few minutes later, the lead researcher managed to at least get a “told you so” in before the world ended. It wasn’t so much the kaboom everyone had expected than a sudden complete loss of molecular integrity of everything that got in the way of the swarm of unicorns as they blazed past. The earth, now closely resembling a piece of swiss cheese, collapsed into a ball of rocks and molten iron within minutes, eventually losing orbit and dropping into the sun. After barely half an hour, it was as if nothing had ever been where the earth used to be, the only indication of there ever having been a planet between Venus and Mars except the now slightly irregular orbits of the surrounding planets.

Alex, though, hadn’t been there to wittness any of this. His house had happened to be in the trajectory of one of the rainbow-spewing harbingers of the end, which had made him one of the first people to go.

He didn’t have any time to figure out that he had just died. Having lost all faith in god due to his strict religious upbringing, he imagined death to be a much less interactive thing. After he had been disintegrated by a magical creature traversing space at 98.7% the speed of light, he had suddenly found himself in what appeared to be a semi-transparent room somewhere towards the top of a multi-story building in the middle of a bright yellow-white plain that extended to the horizon in all directions. Next to him, two strangely feature-less people were busy defenestrating white boxes, which, on closer inspection, turned out to be refridgerators. When Alex asked them whatever the hell they were doing and why there were doing whatever the hell they were doing, he was informed that the two people, who introduced themselves as A4153 and A4155, were doing important work furthering the unicorn cause in the great ham war. Then, he was promptly thrown out the window.

As he flew down towards the ground, thoughts raced his mind, and he remembered the sandwich’s words, and something clicked, and the days events suddenly made perfect sense to him. Sadly, though, he hit the ground and splattered into several thousand tiny pieces - severely impairing his functioning as a human being in a way his death earlier had not - before he had the chance to do as much as shout “Eureka!”, and that is the end of that story.

So, over the easter weekend, I went to Breakpoint, a demo party in the wonderful “Bingen am Rhein”. Since I like the invitation to that a lot, have a video of it to start off this post:

It was awesome, as always; Demos were released and enjoyed on the bigscreen, beer was consumed, people were drunkenly hugged, and a great time was had by all, as evidenced by my own pictures at flickr, and some more pictures over at slengpung.

Speaking of releases, here’s two: First, our [SVatGs] release for the 4 kilobyte intro competition, which placed 9th out of 18! (Upper half! Yeeeeeeeeeeah!) 4k intros are demos that have a size of only four kilobytes. For comparison, this tiny image, which I randomly picked out of my misc folder, is 10k big - more than twice that! [5dpl on pouet]

And then, there’s my favourite entry from the demo compo, because I like things what are colourful and blink a lot: United Force / Digital Dynamite - Wir sind Einstein. [on pouet]

Overally, it was a great weekend, and it’s impossible to thank the BP orga team enough for making it possible. I hope that some people will get together and pull off a party as awesome as this next easter, now that breakpoint is over with~

Until then, let’s remember the most important (most important possible) announcement, and see you at the next demoparty. :3

we love you too, scamp <3

It is still kind of hard for someone who is okay at writing code, but has no idea about the Nintendo DS, to get started writing DS code. As you might or might not know, I’ve written a demo and other small things for the NDS before, so here is a bunch of random things that are really useful when writing DS code, and enough to get you started, as compressed as I can manage, somewhat geared towards wanting to write demos. (Yes, bullet points. So sue me.)

  • http://nocash.emubase.de/gbatek.htm <- This is gbatek. gbatek is the most complete inofficial reference of the NDSs hardware (Yes, even though it’s called “GBAtek”) and reading it or at least skimming it, and having it open for reference, is probably a good idea. Other than the official docs, this is the best documentation about the NDS you can get. It is mostly accurate, the only thing I’ve discovered to be wrong is the documentation of the MASTER_BRIGHT register, but eh. See below for that.
  • http://dev-scene.com/images/3/3d/Dov_DS_MemoryMap.png Also, here is a picture of the NDSs memory layout, which can be very useful when you’re playing with the VRAM banks. It is kind of fancy.
  • FYI: The DS has TWO CPUs. Two different CPUs. One ARM9 (Main CPU at 66mhz) and one ARM7 (Usually used for sound and/or wifi). It also has a fixed point math coprocessor and sine tables. Also, on the DS, a circle is made out of 512 degrees, for obvious reasons. You’ll get used to it.
  • The DS has dedicated 2D hardware for sprite display that can display 128 rotated, scaled sprites (This is a whole fuckton) on up to four layers. You have two engines, one “main” engine and one “sub” engine, which you can map to one screen each. The engines run at 60fps. You get an vblank interrupt, which is neat for timing (Wait for it after each frame => 60fps) and an hblank interrupt which is neat for stupid tricks. The limit here is mostly the available VRAM. You need to map VRAM to the engines. See the memory map and libnds docs, and http://dev-scene.com/NDS/DOCgraphicmodes#VRAM here for what you can map where.
  • The DS has dedicated 3D hardware. It works like you would expect 3D hardware to work. You can render to a transparent background if you turn antialiasing off.
  • There is a library for doing NDS homebrew things, “libnds”. It’s okay. Documentation is at http://www.devkitpro.org/libnds/ (Kind of terrible to navigate, fuck yeah doxygen). The 3D functions are a little terrible. WAHa wrote a replacement for that, which is IMO nicer to use: DS3D.c / DS3D.h
  • There is a higher-level library building on libnds, called “PALib”. I don’t particularily like it, and it’s IMO a little too high level to do cool things. That said, it does allow for making small things real fast (I used PALib to make this little game in like 2 hours). I just don’t think it’s worth it.
  • There is a library for playing module audio on the DS, called maxmod. It works okay. It works best with modules in .mod format made in modplug. You need to preconvert modules using an app that comes with the library. It supports the sync effect. Documentation: http://www.maxmod.org/ref/
  • To access more data than one can fit into RAM, it is probably a good idea to use nitroFS. It’s probably a good idea to use it for most data, really. http://blea.ch/wiki/index.php/Nitrofs (Also, it is a good idea to convert data such as images to NDS native formats before use. There are tools for this which come with the toolchain.)
  • The toolchain you’ll want to use is devkitARM, which you can get http://www.devkitpro.org/ here for windows, lunix and OS X. Their makefiles are kind of a mess, but it’s not hard to write your own, slimmed down one. To test shit without having to get out the actual hardware, which is annoying and takes time, you might want to download an NDS emulator. The best emulator to use for this is no$gba. A working version is here: http://halcy.de/share-p/nocash.zip. (I am linking that here because the author is impossible to contact these days. If you are the author, talk to me, I’ll take it down. Also, I’ll buy a debug copy of no$gba off you.) It is not 100% accurate. It is good with timings, but the 2D emulation could need work. Mostly, it sometimes lets you map VRAM that you do not have, or acts strange with VRAM mapping in other fun ways. You’ll need it a lot probably, so a make rule to start it is a good idea, like so: “/usr/bin/wine /home/halcyon/Desktop/src/DS/devkitpro/nocash/NOCASH.EXE $(NAME).nds” (You get the idea.)
  • Another emulator that is nice to have is the official Nintendo emulator “Ensata” (Sadly not supported by Nintendo anymore). It’s a little more accurate sometimes, but also much, much slower. Generally, use no$gba over this.
  • If you can get a debug version of no$gba then things would be a lot easier. This is probably impossible since the developer is MIA. If you find one: I want that, badly. What the official devs use to debug (As far as I know) is CodeWarrior attached to the official emulator. This is most likely a pain to set up though. (They use that, or Nintendos in-hardware debugger, but I reckon no one reading this is an official licensed Nintendo dev… edit: except DFYX, but for the purpose of the previous sentence, he doesn’t count. >:T)
  • To run code on the actual hardware, you’ll need a flash cart. They are available for cheap from sites like http://dealextreme.com/. There’s no soldering required, you just copy your ROM onto one of these via your computers card reader, put it in the DS and run things. Even though it is cheaper, the best one for development is probably the CycloDS. The “rerun last ROM by holding shoulder buttons during boot” function and generally very usable design (No spring loader that fires your microSD card to the stratosphere) make it very useful. You might want to make a rule in your makefile that compiles a ROM, mounts the microSD, copies the rom over and unmounts / ejects the microSD again to make it easier to play around.
  • If you happen to have a copy of the official Nintendo DS technical manual, that is super useful. It really is a lot nicer than gbatek, but not readily available, for obvious reasons.
  • If you know other interesting things or links or think/know I am wrong about stuff, tell me. Comment or mail to lorenzd@gmail.com.

PS: About the master bright register: Here is everything you should need to know.

// LOVE COLORED MASTER BRIGHT <3 mode flags:
// 0 0000 fail, nothing
// 1 0001 fail, nothing
// 2 0010 fail, nothing
// 3 0011 fail, nothing
// 4 0100 brightens
// 5 0101 fail, all white
// 6 0110 brightens
// 7 0111 fail, all white
// 8 1000 darkens
// 9 1001 fail, all black
// A 1010 darkens
// B 1011 fail, all black
// C 1100 darkens
// D 1101 fail, all black
// E 1110 darkens
// F 1111 fail, all black

u16* master_bright = (u16*)(0x400006C);
u16* master_bright_sub = (u16*)(0x400106C);
void fade( s16 fade_val ) {
   memset( master_bright, (1<<7) | fade_val, 2 );
   memset( master_bright_sub, (1<<7) | fade_val, 2 );
}
void fadew( s16 fade_val ) {
   memset( master_bright, (1<<6) | fade_val, 2 );
   memset( master_bright_sub, (1<<6) | fade_val, 2 );
}

PPS: Excuse the conversational tone, this was originally written for a private forum. I’ve cleaned it a little, but not much. The DS is a fun plattform to write stuff for. Go have fun and make a kickass demo. :3

re: 0 (view/add your own)  / about : , , ,