Page 1 of 2

OSDK 1.5

Posted: Sat Feb 14, 2015 9:55 pm
by Dbug
The version 1.5 of the OSDK is now available, with the following changes:

- PictConv was updated to version 0.21, providing native support for AIC pictures and also support for alpha channel.

What it means in practice is that you can draw pictures on a PC alternating the colors like you would do it with HIDE on a real Oric, and PictConv will take care of automatically switching between the two sets of colors, using inverted video mode where required.

The Alpha Channel support is limited to the monochrome and AIC mode: Basically if a bloc of 6 pixels happens to be transparent, then this bloc will be saved with the value ZERO, making it possible to skip over it when displaying the bitmap data (ie: You can make sprites with holes and transparent outline automatically)

As usual, the OSDK is available on the download page at http://osdk.defence-force.org/index?page=download

Re: OSDK 1.5

Posted: Sat Feb 14, 2015 10:02 pm
by Hialmar
Will get it ASAP.

Thanks a lot for the hard work.

Re: OSDK 1.5

Posted: Sat Feb 14, 2015 10:04 pm
by Dbug
One important detail: I used by default the palettes from Twilighte which are:
- Even lines: Black Paper and Cyan Ink (inverted to White Paper and Red Ink)
- Odd lines: Black Paper and Yellow Ink (Inverted to White Paper and Blue Ink)

I will probably provide a way to specify custom colors, but I did not have the time :)

Re: OSDK 1.5

Posted: Sat Feb 14, 2015 11:48 pm
by iss
OSDK 1.5 works for me. Sprites with holes and transparent outline sounds very intriguing indeed.
Thanks for update!

Re: OSDK 1.5

Posted: Tue Feb 17, 2015 5:29 am
by coco.oric
Thanks for this marvelous update
AIC mode is too good

Re: OSDK 1.5

Posted: Thu Feb 19, 2015 10:57 pm
by Chema
Just tried and it works perfectly. At least it compiled Oricium with no issues. Thanks for the update Dbug!!

One question: have you abandoned the DskTool? I see you are still using tap2dsk and I think it is not supporting the -i and -n options to set the INIST and Disk name.

I am also quite sure I detected some errors in PictConv (at least two options were swapped in the way they worked). I think I posted about that. Did you remember to update that too?

Re: OSDK 1.5

Posted: Fri Feb 20, 2015 6:56 pm
by Dbug
Chema wrote:Just tried and it works perfectly. At least it compiled Oricium with no issues. Thanks for the update Dbug!!

One question: have you abandoned the DskTool? I see you are still using tap2dsk and I think it is not supporting the -i and -n options to set the INIST and Disk name.

I am also quite sure I detected some errors in PictConv (at least two options were swapped in the way they worked). I think I posted about that. Did you remember to update that too?
As a general rule, if there's nothing in the history, nothing was done.
I guess I need an issue tracker to follow these things, could just be a text file in the main SVN depot.

Could you find what the problem was for PictConv?

Regarding DskTool/Tap2Dsk, it's not so much as I abandoned it that I myself totally stopped using the default way to build disk, I now almost exclusively use the FlopppyBuilder way.

What I would suggest, is to have people using these tools actually modify/update them, and correctly document in the commit messages what they did, eventually fix the example code or add new sample code to show how to use them, then in the next official build that would be integrated.

Hialmar, mmu_man and jylam have done such changes, and actually Hialmar is the last person to have made changes to tap2dsk:
May 2014
Now tap2dsk adds automatic names to unnamed basic tapes (from the tap file name).
It also allows to color (paper and ink) the name of the disk.
I wanted originally to make DskTool to avoid having Tap2Dsk, and Raw2Mfm, etc... but since I did not use it myself and Fabrice on the other hand kept updating his own versions of tools, it's probably not smart to maintain DskTool.

Feedback is welcome :)

Re: OSDK 1.5

Posted: Fri Feb 20, 2015 7:09 pm
by Hialmar
I can add the INIST and Diskname options but the biggest problem is that tap2dsk creates bogus dsk files. I have no idea why but if you copy files, edit files and the like you end up with corrupted files on the .dsk.

What I do is mount them along with the Sedoric 3 original disk found on Fabrice's website and then copy the files from the .dsk generated by tap2dsk to the good disk.

Re: OSDK 1.5

Posted: Sat Feb 21, 2015 1:59 am
by peacer
Can someone PLEASE create a gui for using pictconv? Or, is there a project to develop / upgrade the LIBPIPI project ?

http://caca.zoy.org/wiki/libpipi/oric

Re: OSDK 1.5

Posted: Sat Feb 21, 2015 9:10 am
by Hialmar
I will add this to the list of things that I have to do.

Re: OSDK 1.5

Posted: Sat Feb 21, 2015 10:13 am
by Dbug
peacer wrote:Can someone PLEASE create a gui for using pictconv? Or, is there a project to develop / upgrade the LIBPIPI project ?
http://caca.zoy.org/wiki/libpipi/oric
Anyone could make a gui for pictconv, I'm pretty sure there was some people who started some projects for that.

It will not be me, because I would not use it, and I don't work on adding features I don't use (except adding trivial options or settings) simply because for a feature to be good it has to be be something you want to do and use :)

What I would suggest, is that you start a thread about that, with a mockup UI screenshot showing what you would like it to be, and explain what it should do and how.

Re: OSDK 1.5

Posted: Sat Feb 21, 2015 10:57 am
by peacer
Hmm.. Ok. I will do that :)

Re: OSDK 1.5

Posted: Mon Feb 23, 2015 10:02 am
by Chema
@Dbug I think I recall that the option of generating a tap with the loader (-o0) and with the BASIC program that first switches to HIRES then loads (-o1) were swapped, but I'd need to double check.

No problem with using or not DskTool. I understand what you say. It is just that I had my own version of tap2dsk which supported the -i and -n options (did I add them, or Fabrice added them for me?), which was great for generating disks which auto run the games and for testing. I will have a look at my sources.

In fact I think I had to dump the first sectors of a sedoric disk because a sedoric.h file was missing or something like that.


@Hialmar I never noticed anything wrong with the generated dsk images, but I also never played renaming files... This is quite interesting and something that indeed should be fixed.

Cheers!

Re: OSDK 1.5

Posted: Mon Feb 23, 2015 6:15 pm
by Dbug
Chema wrote:@Dbug I think I recall that the option of generating a tap with the loader (-o0) and with the BASIC program that first switches to HIRES then loads (-o1) were swapped, but I'd need to double check.
Ok, I can make it so it will be in the next version.
Chema wrote:No problem with using or not DskTool. I understand what you say. It is just that I had my own version of tap2dsk which supported the -i and -n options (did I add them, or Fabrice added them for me?), which was great for generating disks which auto run the games and for testing. I will have a look at my sources.
The OSDK is in SVN, you can take a look at the version that is in the depot, and eventually modify it - check with Hialmar that the changes are fine for both of you.
If you can agree with a change, I can make a new version of the SDK with the change as well.

Re: OSDK 1.5

Posted: Tue Feb 24, 2015 10:01 am
by Chema
I am pretty sure it was not me who patched the -i and -n options, but who knows... I trend to forget these things...

My local sources have this in the main function:

Code: Select all

printf("Tap2dsk V2.1\n");

	if (argc<2) {
		fprintf(stderr,"Usage: tap2dsk [-n<disk_label>] [-i<init_string>] <tape_image1> ...<tape_imageN> <old_disk_image>\n");
		exit(1);
	}

	for (i=1; i<argc; i++) {
		if (argv[i][0]=='-') {
			switch (argv[i][1]) {
			case 'i': case 'I':
				if (strlen(argv[i]) - 2 > 60) {
					fprintf(stderr,"Init string too long\n");
					exit(3);
				}
				memcpy(system_sect+0x1E,argv[i]+2,strlen(argv[i])-2);
				break;
			case 'n': case 'N':
				memset(system_sect+9,' ',21);
				if (strlen(argv[i]) - 2 > 21) {
					fprintf(stderr,"Disk label too long\n");
					exit(3);
				}
				memcpy(system_sect+9,argv[i]+2,strlen(argv[i])-2);
				break;
			default: fprintf(stderr,"Bad option : %c\n",argv[i][1]);
				exit(2);
			}
		}
	}
So it is quite easy to add these options...

I remember the problems I had for compiling this as there was a file missing (sedoric.h). I attach here the sources I have, in case Hialmar wants to have a look. Sorry but I just don't remember if I touched anything else, or Fabrice sent me these...
chema_tap2dsk.zip
(32.65 KiB) Downloaded 509 times
In any case I agree with Dbug that we should bump the version number to avoid confusion.