Ask something - We can help.

Started by Stupot, Fri 19/12/2008 20:06:21

Previous topic - Next topic

MiteWiseacreLives!

and now for a necro-thread-revival!

What anti-virus are you guys running?
I use Avast Free, and I am convinced it hates AGS and causes all kinds of weird crappy behaviour on my computer (ie. massive delay to keystrokes in harmless software like WordPad)
Looking for an alternative...

Click'd

The built-in thing in Windows that keeps changing names. At the point of writing it's called Windows Defender, apparently.

cat

Quote from: ClickClickClick on Thu 09/11/2017 20:11:12
The built-in thing in Windows that keeps changing names.
This and common sense.

Danvzare

Quote from: cat on Fri 10/11/2017 12:07:24
Quote from: ClickClickClick on Thu 09/11/2017 20:11:12
The built-in thing in Windows that keeps changing names.
This and common sense.
And an ad-blocker, and that no-script thing.

MiteWiseacreLives!

Thanks guys I'll take this advice  :)

cat

Suddenly MIDI does not work on my Win10 PC anymore ??? No matter what MIDI program I use (media player, VLC, midi editing tool), none of them can find the Windows MIDI device.
I have the Microsoft GS Wavetable Synth listed in Device Manager->Software devices, tried to deinstall/install it, still doesn't work.

Does anyone have an idea what can be wrong here?

NicolaGs

#1626
I have no idea about the cause of your problem but I'd use instead an alternative driver such as BASS MIDI driver, that uses Soundfont instruments files and provide a much better MIDI quality than default Windows MIDI driver.

Edit : a good and free soundfont working with the BASS driver can be found here.
My first game : I Want Out!

cat

Thanks NicolaGs. I was hoping to get the Windows Synth to work, but I guess I'll try your solution.

amit14

guys, I have started learning c language through a book but I am facing some difficulties related to some topics so can anyone help me out
someone who is quite well in c and c++

arj0n

Quote from: cat on Mon 18/12/2017 18:46:27
Thanks NicolaGs. I was hoping to get the Windows Synth to work, but I guess I'll try your solution.

Here's one I use: the Arachno SoundFont (free download: www.arachnosoft.com/main/soundfont.php)

Why I use this one:
(Quoting from arachnosoft website:) Arachno SoundFont has been primarily built to enhance the MIDI music of these old video games you played and loved.


Crimson Wizard

Quote from: amit14 on Wed 27/12/2017 19:32:58
guys, I have started learning c language through a book but I am facing some difficulties related to some topics so can anyone help me out
someone who is quite well in c and c++

Please be more specific, what topics are these?

amit14

Quote from: Crimson Wizard on Wed 27/12/2017 20:31:56
Quote from: amit14 on Wed 27/12/2017 19:32:58
guys, I have started learning c language through a book but I am facing some difficulties related to some topics so can anyone help me out
someone who is quite well in c and c++

Please be more specific, what topics are these?
like pointers and functions
actually I know what they are and how to use them in program but I am having problems in using them

Crimson Wizard

#1632
Quote from: amit14 on Thu 28/12/2017 05:47:49
actually I know what they are and how to use them in program but I am having problems in using them

I am still not sure how to help you. You are saying you have problems, but not telling what these problems are.
Maybe you can give an example?

cat

Quote from: arj0n on Wed 27/12/2017 20:04:32
Here's one I use: the Arachno SoundFont (free download: www.arachnosoft.com/main/soundfont.php)

Which software synth are you using?

amit14

#1634

Quote
I am still not sure how to help you. You are saying you have problems, but not telling what these problems are.
Maybe you can give an example?
alright
so to begin with, can you make me understand the working of this code
main()
{
    int yr;
    printf("Enter year");
    scanf("%d", &yr);
    yr = romanise (yr, 1000, 'm');
    similarly for 500, 100, and so on;
}
romanise(int y, int k, char ch)
{
    int i,j;
    if(y==9)
    {
          printf("ix");
          return (y%9);
    }
    if(y==4)
    {
         printf("iv");
         return (y%4);
    }
    j=y/k;
    for(i=1;i<=j;i++)
        printf("%c", ch);
    return(y-k*j);
}
please explain me how is the romanise function is working here
rest I have got

arj0n

Quote from: cat on Thu 28/12/2017 11:17:13
Quote from: arj0n on Wed 27/12/2017 20:04:32
Here's one I use: the Arachno SoundFont (free download: www.arachnosoft.com/main/soundfont.php)

Which software synth are you using?

BassMIDI driver.

Out of my head:
1. Extract the file 'Arachno SoundFont - Version 1.0.sf2'
2. Open 'Configure BassMIDI driver'
3. Load the sf2 file in BassMIDI driver's 'SoundFonts (Port A)' tab and click apply.
3. In the BassMidi Advanced tab:
Vol: around 8000
Default MIDI Synth: SoundFonts (Port A)
Click apply

Done.

Snarky

#1636
Quote from: amit14 on Thu 28/12/2017 11:43:44
alright
so to begin with, can you make me understand the working of this code

please explain me how is the romanise function is working here

OK, so this code is meant to print a number in Roman numerals. So we first have to make sure we understand how Roman numerals work.

Basically, you have a set of symbols: M (1000), D (500), C (100), L (50), X (10), V (10) and I (1). Usually, to read a number you just add all the "digits" together. For example, MMXVII = M + M + X + V + I + I = 1000 + 1000 + 10 + 5 + 1 + 1 = 2017. This is the "simple" method, and we always go from the highest to the lowest symbol.

One twist: commonly, instead of writing 4 as IIII and 9 as VIIII, you write it as IV and IX (smaller digit first, meaning you subtract it from the higher digit instead of adding them). You'll sometimes see the same logic applied to 40 (written XL instead of XXXX), 90 (XC instead of LXXXX), 400 (CD instead of CCCC) and 900 (CM instead of DCCCC), but that's more of a modern convention, and this code doesn't do it.

OK, so how do we write a number in this format? It should be pretty obvious, but let's break down the steps:

You start with the highest symbol (M), and see how many times it "fits" into your number. You repeat it that many times (which can be zero), and then move on to the next symbol, fitting it into the part of the number remaining. So for 2017, we ask "how many times does 1000 go into 2017?" The answer is 2, so we write M twice: MM (2000). We subtract 2000 from 2017, leaving 17. Now we ask the same for D (500), C (100) and L (50). In each case, the answer is 0 (all those numbers are bigger than 17), so we don't write anything. When we get to X (10), the answer is 1, so we write a single X after MM: MMX. We subtract 10 from 17, leaving 7, ask how many times V (5) goes into 7 (once), giving MMXV and leaving 2, and finally ask how many times 1 goes into 2 (twice), giving us MMXVII.

And that's pretty much what the code does. It breaks the task down into handling each symbol, which is done by the romanise() function. It takes three arguments: the first (y) is the number you want to write. The second (k) is the value of the symbol you want to try to fit into that number. The third (ch) is the character representation of that symbol that you want to print. The function prints the symbol ch as many times as its value k fits into the number y, and returns how much of the number is left over:

Code: c
    j=y/k; // How many times does k fit into y (divide y by k, rounding down)
    for(i=1;i<=j;i++) // Print the character ch that many times
        printf("%c", ch);
    return(y-k*j); // Return the part of y that is left over (subtract the value of k, multiplied by the number of times we printed it, j)


The rest of the function deals with the fact that 4 and 9 are written differently as special cases. Should be pretty clear, except for one thing: The return values, (y%9) and (y%4), use an operation called modulo. (Which gives the remainder of an integer division. For example, 17%5 = 2 because 17/5 = 3 and 17 - (3*5) = 2.) They will always be equal to 0, and writing them in this format is a little pointless.

So when we call romanise() repeatedly, each call will print a certain symbol a certain number of times, and let us know how much of the number remains to be printed. We feed that value into the next function call (it's important to note that since we write yr = romanise (...) on each line, the value of yr is changing at each step; it's always the remaining part of the number the user entered). We repeat until we're down to 1, and at that point the number is complete:

Code: c
main()
{
    int yr;
    printf("Enter year");
    scanf("%d", &yr);
    yr = romanise (yr, 1000, 'm');
    yr = romanise (yr, 500, 'd');
    yr = romanise (yr, 100, 'c');
    yr = romanise (yr, 50, 'l');
    yr = romanise (yr, 10, 'x');
    yr = romanise (yr, 5, 'v');
    yr = romanise (yr, 1, 'i');
}

amit14

thanks for your help
now I have understood it

Egmundo Huevoz

Hello! Does anybody know of any 3d modules working in the newer versions of AGS? At least 3.0 onwards. I tried easy-3D, to no avail. 3D-AGS seems to be missing some plugins. I don't even want something too complex; something like doom working on a few rooms is enough (I plan to use it for mini-games, not the whole game). Thanks in advance!

Kweepa

Which plugins are missing from AGS-3D?
Still waiting for Purity of the Surf II

SMF spam blocked by CleanTalk