More C0D4G3

Wednesday, March 15, 2006

Less codage

Minerva
Apple moving on to Intel was the stupidest idea ever. It had to be the other way around, PC's had to go over to some kind of RISC architecture... which is what AMD is doing, sorta. The new 64 bit chips look more like RISC processors than CISC. This is going to be the salvation of my Minerva project. Intel processors have few GPRs (8), compared to the SH4 (16). This results in having to do constant register allocation Bleh. It also means your purdy 3.0ghz P4 will look like a little old granny.
Changes to the Minerva plans:
1) No more copy+paste. This was a technique I'd use to permit cross-platform code generation, but it relies on the DC's registers to be stored on memory rather than on native registers . Instead, I'll have to use...
2) Proper code generation. Generating optimized binary code rather than copying general-purpose code.

To do:
1) Save money, get a 64bit machine to work on. ^_^
2) Re-do the processor in assembly rather than C
3) RAM code can be re-used, but must still be finished.
4) Debug interface


Other projects
The other projects have all progressed... sorta. I've been working on code that will be usefull for all of them:
the XML/INI loader for configurations, MIX-Loader for storing game files (Now with Blowfish encryption support!), and an assembler for ARM processors (part of a VM that will run some of my projects [Tamagochi, space game, etc.] on my GP2X).

Thursday, March 09, 2006

Death, pain, and suffering

Ok, there isn't any death, but there is a lot of psycological pain and suffering. Till when must this go on?! Work sucks.

I got some work done on the renderer, it now correctly rotates/translates/draws stuff in line-mode. The frame-rate is sad, I'll buy it a chocolate bar so it can cheer up.
Also done is a parser for XML-like files for loading game configurations and stuff. It is also capable of loading INI files, compatible with the Red Alert 2 INIs. I have also managed to finish a MIX file loader, which can be used to open the MIX files that come with Red Alert 2. MIX files are like TAR balls, wherein they're used to store a bunch of files in a single big file, with no compression.
I'm going to combine the INI-loader, MIX-loader, and the renderer to make a click-and-drag game creator for the GP2X, except, with no clicking and dragging due to the lack of a pointer device. No idea what I'm going to do with the interface, but at the moment it's not something to worry about.
To Do:
Finish the script compiler.
Make a PCX loader (I'm using Minilib here...)
Come up with some interface idea and implement it. Probably gonna use the GUI I made a while ago.
Bake a pie and savor its juicy goodness.

Saturday, March 04, 2006

Can't make my mind up...

Arg... I have so many projects going on right now, I don't know what I'm gonna do.

First of all, Minerva. This project is already HUGE. I've got most of the dreamcast processor done, and now I have to emulate RAM. There's no mysteries damaging my braincells, but I can't stand looking at it anymore. The code is not badly structured or anything, it's just... too big. I need a few days off work to be able to code on this, as I've tried using my little free time to do it but progress is really slow and I keep losing track of what has been done and what still needs to be done.

Second project: Unnamed space game. This is a Massively Multiplayer Online space game, where players control teams of AI ships and conquer planets. These planets are randomly generated so "Infinite" planets should be enough to keep players happy. I'm currently thinking of moving it from 3D to 2D, as it will look much better on lower-end machines, without changing gameplay much. Currently not progressing as I don't have a server to put it on so there's not much point in working on it for now.

Third project: Since I got my GP2X I've been itching to make something for it. I started off with a software 3D engine. It is capable of drawing in line mode only for now, I'll add filled faces afterwards and textures after that. Problem is I can't summon the strength to re-study all the maths involved, and there's some things acting funny (Fixed point math is acting weird, the only color that works reliably is white, and some things work on the PC and won't on the GP).

Fourth project: I really like coding AI, and a nice small Tamagotchi-like project fits my needs for something small to work on. I'll probably end up working on this for today.

Codewars: It's not really my project so I don't put it in the list. A new idea is being discussed regarding networking support to the project. If it does go on-line, codewars will win a VM powered by a dreamcast processor emulation core. :)
If it doesn't go online, I'll probably have to conform to the RB-only rule, so no C++ VM. :(