Saturday, 20 November 2010

Graphics

Converted all Atari ST graphics and i started to improve them (adding more colors, better palette & anti-aliasing), for the tiles I'll use a subset of Phantasie III ones. On the code side, i nearly completed the spells system, all that is left to complete the towns are the transactions between characters and the armories.

Also I planned to add proper intro and ending sequences displaying some text and an effect covering (and uncovering at the end of the game) the wilderness in shadow (or something like that).

I uploaded the Ruby script i used to convert the graphics to raw Amiga format.

Sunday, 14 November 2010

More precision

I discovered that some of the values i thought were meaningless in twn2x files were in fact used to randomize the stock of items in towns (to simulate some market activity), so i updated the conversion script and file format description to reflect that.

I also noticed that i was saving approx. 100-140 bytes of extraneous data inside the NVRAM, so maybe there'll be enough room to save the player's progression on the wilderness map after all (which would be more satisfying)...

I had the time to complete the items using function (also the scrolls reading sequence) and started the spells casting part (the manual contains some errors about spells types and i changed some of them to have less restrictive use like VISION which will be usable in dungeons as well as in wilderness), i think i could publish a first preview with the towns part completed in about a week but i don't see much reason to rush it and do that yet, I'd rather wait until i have all parts completed and a more or less playable game before releasing any binary (unless someone's willing to beta test). This should probably take a couple of months to have everything implemented and put in order so stay tuned, at worst I'll release something if i feel a drop or loss of motivation.

Wednesday, 10 November 2010

Work in progress...

A quick report, I've been working on the towns and characters managements mechanisms and they're almost completed. The commands not implemented yet are: casting spells, giving or using items, buying or selling items to shops and burying dead characters, after that I'll be done with that big part of the engine.

Doing the parts of the game which interact with the data is relatively easy; Most of the work goes into figuring how to show the data on the screen or into the layout the various menus to make the interface intuitive enough, also each time i have to mess with the operating system API is a painful experience mainly due to cryptic documentation (thankfully that part is almost over as only the interrupt to drive the internal audio chip that I'll use for the SFX is left to be implemented, for the music I'll use CD tracks, which reminds me that I'll have to find someone willing to compose probably 6 of those soon enough).

I also modified/improved several parts of the original game design and behavior like the spells learning (a character will be able to learn several spells in one go) or the gold, experience points and characters "levelling" (which will be calculated after each combat like in Final Fantasy games).

There's still a lot of work to be done, 3 big parts remain: The tiled map system, The combat engine and The dungeons scripting (plus the minor game over and game winning parts), several months of work in sight i guess.

Wednesday, 3 November 2010

CD32 bootable discs

The console uses a special format for CDs that can automatically boot at startup, when inquiring about the method i would have to use in order to create such CD i stumbled upon the most widespread method which consist of using an old Amiga tool called "IsoCD" made by Carl Sassenrath which was part of the official Commodore CD32 Developers kit back in the day, since I'm developing the game from Windows that tool was kinda cumbersome to use (plus it have some quirks like the trademark file which needs to be reloaded each time an iso file is generated), i couldn't integrate it inside my compilation scripts.
 
For the conveniency of the project it was obvious that i had to determine what made a CD bootable on the console and make some tool that would convert standard ISOs to those CD32 bootable ones so i could use mkisofs to create the files.
 
After a quick look i noticed that there's actually 3 locations where data differ from standard ISOs:

- 17 extra bytes in the application data field containing pointers to the path table block and to a trademark file block looking like this:

   0x00
   "FS"
   0x00
   0x00
   "TM"
   0x00
   <path table block byte>
   0x00
   0x00
   0x00
   0x00
   0x00
   0x00
   0x00
   <trademark file block byte>

- A 2048 bytes trademark file (mostly containing garbage but it have to be present)
- System ID have to be "CDTV".

Both blocks byte pointers are multiplied by the blocks size (2048 bytes) to determine the offset of the relevant informations inside the file, i choosed to put the trademark file right before the path table at block 18 (offset 36684) (the path table created by mkisofs is located at block 19) as there was enough empty room there (for some reasons putting it in the boot sectors before the ISO header wouldn't work).

The command line to use with mkisofs is quite specific and goes like this:

mkisofs -quiet -V <cdname> -copyright <yourcopyright> -publisher <publishername> -o <name.iso> -relaxed-filenames -d -input-charset ASCII -output-charset ASCII -iso-level 3 -A "" -sysid CDTV <directoryname>/

It won't work with anything else than a CDTV system ID, i guess they were lazy and re-used the code they made for their CDTV product.
 
So, i made another Ruby script which does the dirty conversion job (see related files section for download), burned a CD with the ISO and it worked like a charm.

On the other news, I also had the time to implement the game saving & the characters creation process.

See you soon.