OSDK 1.19

Questions, bug reports, features requests, ... about the Oric Software Development Kit. Please indicate clearly in the title the related element (OSDK for generic questions, PictConv, FilePack, XA, Euphoric, etc...) to make it easy to locate messages.

User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

OSDK 1.19

Post by Dbug »

This version 1.19 is mostly for testing for regressions and go forward in the future:

- All the binaries are now compiled with Visual Studio 2019 instead of 2010. This should make it easier to update in the future, but this may also have uncovered some bugs and behavior change, so beware and signal any regression

- Added a new environment variable, OSDKCPPFLAGS, which can be used to pass additional data to the C preprocessor (like additional defines)

- Upgraded Oricutron to the version 1.2.4

As usual, the OSDK is available on the download page at http://www.osdk.org/index.php?page=download but you can now also get it from OSDN.net at https://osdn.net/projects/oricsdk/
User avatar
jbperin
Flight Lieutenant
Posts: 480
Joined: Wed Nov 06, 2019 11:00 am
Location: Valence, France

Re: OSDK 1.19

Post by jbperin »

Dbug wrote: Wed Aug 11, 2021 5:36 pm This version 1.19 is mostly for testing for regressions and go forward in the future:

- Added a new environment variable, OSDKCPPFLAGS, which can be used to pass additional data to the C preprocessor (like additional defines)
Thank you for this new version :D
User avatar
coco.oric
Squad Leader
Posts: 720
Joined: Tue Aug 11, 2009 9:50 am
Location: North of France
Contact:

Re: OSDK 1.19

Post by coco.oric »

Thanks for updating these tools
coco.oric as DidierV, CEO Member
Historic owner of Oric, Apple II, Atari ST, Amiga
User avatar
ibisum
Wing Commander
Posts: 1645
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: OSDK 1.19

Post by ibisum »

Thanks for the hard work on these tools, they keep getting better and better - and having an impact on Oric life, in significant ways ..
User avatar
iss
Wing Commander
Posts: 1641
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: OSDK 1.19

Post by iss »

Thanks @Dbug!

Some very minor details which I noticed:
- "back to the future" :) It's obvious bad date conversion 08.11 vs. 11.08 :
Screenshot_20210813_092215.jpg
- the 4x size of the bloated executables (compared to the previous OSDK 1.18) is probably related to statically linked MS VCR library which is grows with every new VC++ version. We have to live with that - the size does matter only for Oric :).

- for users who prefer to work with OSDK under Linux (@xahmol): TapTool and tap2cd are using the 'security' version of gets i.e. gets_s which is not available for GCC. The easy fix is to edit the .C/.CPP source adding somewhere at the top following work around:

Code: Select all

#define gets_s(x,y) gets(x)
I'm eager to see more developers for Oric with many new releases :).
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: OSDK 1.19

Post by Dbug »

Good catch, fixed the time stamp.

Regarding gets_s, it's supposed to be C11 standard, but maybe I should have seen this part:
As with all bounds-checked functions, gets_s is only guaranteed to be available if __STDC_LIB_EXT1__ is defined by the implementation and if the user defines __STDC_WANT_LIB_EXT1__ to the integer constant 1 before including stdio.h.
User avatar
iss
Wing Commander
Posts: 1641
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: OSDK 1.19

Post by iss »

Dbug wrote: Fri Aug 13, 2021 7:55 am Regarding gets_s, it's supposed to be C11 standard...
It's supposed but it's actually not :(.

Code: Select all

#define __STDC_WANT_LIB_EXT1__ 1

#include <stdio.h>

static char buf[256];

int main(int argc, char* argv[])
{
  gets_s(buf, sizeof(buf));
  return 0;
}
Result:

Code: Select all

$ gcc -std=c11 -o test test.c
test.c: In function ‘main’:
test.c:10:3: warning: implicit declaration of function ‘gets_s’ [-Wimplicit-function-declaration]
   10 |   gets_s(buf, sizeof(buf));
      |   ^~~~~~
/usr/bin/ld: /tmp/ccBVAnL7.o: in function `main':
test.c:(.text+0x1f): undefined reference to `gets_s'
collect2: error: ld returned 1 exit status
To be correct It's more matter of implementation in glibc than GCC incompatibility. There is lot written about this (and other '_s' functions).
Anyway, what I've posted is just a simple workaround ;)...
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: OSDK 1.19

Post by Dbug »

Is "gets" the only issue you found?

I guess an easy fix would to do like what I did for the rest of problematic functions: Wrap that in the "Common" library so we can easily have different implementations without having to touch the actual code of the tool.

Talking about libraries, since we are talking about Audio these days, so far the most interesting candidate I've found to support the loading of multiple audio format is http://sol.gfxile.net/soloud/index.html, mostly because it built out of the box, it does not have any complicated nonsense setup, it's not coming with any string attached, and the API is relatively clean and easy to use, and it can also replay sound (not just load).

So the idea would be to
- Add SoLoud in the shared libraries alongside FreeImage
- Rename SampleTweaker into "SoundConv" (or "AudioConv"?) to match "PictConv"
- Replace the hardcoded loading of raw file by SoLoud calls so we can load Wav, Ogg, MP3 or whatever else it supports
- Implement the existing algorithms as proper methods that can be selected by command line switches

and then add a few Samples with code matching the few encoding methods validated to work:
- 8 bit sample (the old "Welcome")
- 4 bit sample ("Nyan Cat" and "Oric Tech")
- 2 bit sample ("Rambo" from Tivoli Pirat)

Then from there we can extend if we find things that work fine.
User avatar
iss
Wing Commander
Posts: 1641
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: OSDK 1.19

Post by iss »

Dbug wrote: Fri Aug 13, 2021 9:02 am Is "gets" the only issue you found?
Yes, 'gets' is the only issue.

About soloud: It looks cool and useful. It compiles under Linux nicely: Let's Get "So"-Loud ... :D
User avatar
jbperin
Flight Lieutenant
Posts: 480
Joined: Wed Nov 06, 2019 11:00 am
Location: Valence, France

Re: OSDK 1.19

Post by jbperin »

Dbug wrote: Wed Aug 11, 2021 5:36 pm - Upgraded Oricutron to the version 1.2.4
In this new oricutron, I can't find a way to type the symbol "_" (underscore) which is terribly frustrating when coming to debug with monitor.
I use a french (azerty) keyboard. It seems well recognized by Oricutron because when I press a "A" it's a "A" that is typed (and not a "Q")
But when I press the key "8", i get the "8" typed instead of "_" as it used to do in the oricutron of OSDK 1.16.

Did I miss something ?
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: OSDK 1.19

Post by Dbug »

Probably worth signaling on the Oricutron thread.
User avatar
jbperin
Flight Lieutenant
Posts: 480
Joined: Wed Nov 06, 2019 11:00 am
Location: Valence, France

Re: OSDK 1.19

Post by jbperin »

I don't know if it worths mentioning but in OSDK documentation, at page https://osdk.org/index.php?page=documen ... ng_project, there's a section describing possible environment variables of interest
The OSDK also support some other variables, here they are for exaustivity:
And there's no mention of the variable

Code: Select all

OSDKCPPFLAGS
which was introduced in the 1.19 release.
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: OSDK 1.19

Post by Dbug »

Good catch, it's fixed.
User avatar
Symoon
Archivist
Posts: 2307
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France

Re: OSDK 1.19

Post by Symoon »

Ok this is my first try of the OSDK, wanted to report a few (old or recent) problems:
- the old version 1.9 (1.09 it should have been :wink: ) I had installed long ago doesn't like spaces in the path - it was installed on my desk, so in "Documents and settings" folder.
- So I switched to the latest 1.19, under Windows XP, installed it elsewhere, changed the PATH, and got:
osdk_error.png
Reading this:
Dbug wrote: Wed Aug 11, 2021 5:36 pm - All the binaries are now compiled with Visual Studio 2019 instead of 2010. This should make it easier to update in the future, but this may also have uncovered some bugs and behavior change, so beware and signal any regression
I wonder if this couldn't explain that?
Or has (now old) XP support been dropped?
Thanks!
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: OSDK 1.19

Post by Dbug »

Crap, the XP issue was not done on purpose :-/

https://docs.microsoft.com/en-us/cpp/bu ... w=msvc-170

Apparently the last version of Visual Studio to support XP is VS2017, but fortunately it's possible to install the SDK for it and use it from VS2019.

Regarding the version numbers, I've stopped using plenty of zeroes everywhere, so 1.9 is before 1.10 which is before 1.19
Regarding spaces, I should probably mention it in the documentation, but basically spaces in folders causes way too many problems and life is too short to spend time fixing that. Sorry :)
Post Reply