Tuesday, 23 August 2016

Alas, the end

And so it has come to this, all things must end. But it is nothing to be sad about for me, this has been a great addition to my experiences and I welcome the change for it has been something short of 3 and a half months that I've been working on DM. Not that I won't be working on it from now on, but I'm definitely taking a few days off, lest I come to dislike it for looking at the codebase for too long.

The pull request to merge the engine is due next week as it still doesn't compile with GCC (strangerke has been working on it relentlessly (think 127kbs of error log reduced to 9)). Relatedly, the code is not particularly compliant with the coding conventions at ScummVM (strangerke is working on it, I'll soon start feeling ashamed and will have no choice but to help him).

As for the future of this blog, it is possible that I will post updates for when something major gets incorporated into the engine (think support for other versions).

Almost forgot about the new stuff, if I remember correctly it's convenient loading/saving from the launcher and from the inventory. And also there are debugger commands like godmode, noclip, set pos/map and the aptly named, gimme, which spawns items. Entering the commands without arguments will output their usage, call 'help' for a list of them.

Gimme can be used like this: call 'listItems', if you are looking for something enter any part of it in caps like this 'listItems OF FEAR'. Once you found what you are looking for, call gimme with its name: 'gimme HORN OF FEAR'.

Setting the map is slightly broken. For best results, teleport to an adjacent map, then use pos to set your position next to some stairs and off you go. Avoid using noclip.

PS.: So long, and thanks for all the fish

Friday, 12 August 2016

Finest colours mankind has to offer

Yay! The color palette is FIXED once and for all! No more radioactive green snot on every object and champion and door and what not! The GUI looks fabulous with it's newfound colours, it's just so much more pleasant to click on it now.
Now, the original game uses copper to stretch those few colours the Amiga platform could offer at any given moment and given that ScummVM has no support for something like that (and why would it?) I shied away from even coming close to trying to fix it. Now as the end is nigh, it had to be fixed, and so it was! Phase one, double the palette and offset the pixel colours. Phase two ???. Phase three, profit!
Relatedly the engine is almost complete. What's missing is correcting some display functions, hunting down a few annoying bugs and making sure the game can be finished and then all will be well. The later, so I gather, is not yet achievable. The fluxcages spawned to trap Mr Chaos cannot be seen, because the function drawing them is missing, and that particular function happens to be in assembly (... ehh) and so I can't really test if anything is happening at all, gonna have to make it draw some dummy image.
As always, here's a nice GIF, basking in it glory:

Wednesday, 10 August 2016

Nice cursor, nice spells

Cursor got fixed, seems like googling Amiga hardware sprites is all it needed. Also found the bug with the spell symbols, a petty toUpper call in the text drawing method, dunno what is was doing there in the first place. Long story short, dungeon looks a lot nicer now, palette needs a fix and then it will truly look splendid (sans some scrabbled textures). Here, have nice GIFshot:

Friday, 5 August 2016

Sounds and slightly better blitShrink

The title says it all. There are now sounds in the game, it is the first thing that worked on the first try, or so I hope. One can now indulge in the angry grunts the champions make when you bump them into the walls. Makes one wonder if they want to be there in the first place. Why would they follow an order to go headfirst into the wall?
Also, blitShrink function has been dusted and adjusted and thus the dungeon looks a lot nicer. It seems that after hours of searching for broken code, I realized that nothing is broken, but the original blitShrink method works a bit differently than what I tried to simulate it with. So it seems I can't avoid the assembly after all.