|
|
Re: New AmigaBounty to raise funds for Developer Loaner Hardware
|
Posted on: 2010/6/11 9:03
#7781
|
Home away from home
|
@K-L Yep
@Trevor Who is first "target" for ?:)
|
|
|
|
Re: New AmigaBounty to raise funds for Developer Loaner Hardware
|
Posted on: 2010/6/10 21:51
#7782
|
Home away from home
|
@K-L
Still it's not Abalaban's machine :) Salas00's one are broken and going to trip "for fix", which all in all already bad, and better have new one. I put my voice for the Salas00, he do quality stuff.
|
|
|
|
Re: New AmigaBounty to raise funds for Developer Loaner Hardware
|
Posted on: 2010/6/10 20:52
#7783
|
Home away from home
|
@TrevorDick
Who will be the first one, abalaban or salas00 ?:)
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/10 10:16
#7784
|
Home away from home
|
@MickJT
Nice progress :)
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/10 10:08
#7785
|
Home away from home
|
@Joeled
Rigth now i sended message to Hanz, where i ask him about his current work on drivers and alt, and with idea about bounty, for making Gallium-Mesa port. I do not know what he do already related to that subject (very possible that nothing at moment), and also i do not know what Hyperion do in that terms (need to talk with Rogue about). But still, i think we need already make a bounty now, because money will a bit force the work on it.
Maybe also will buy new Sam or something for any good amiga-developers who will want to do that. I will create later a topic with ideas about bounty, so everyone can discuss that.
|
|
|
|
Re: AHI & Multi sound output.
|
Posted on: 2010/6/9 22:36
#7786
|
Home away from home
|
@freddix SDL_mixer / Mikmod and ModPlug imho are easy for usage on aos4 for mp3/ogg and alt modules like xm/mod/it. But that libs does not have any good functions for getting info about music (well, its imho, i not research it very deeply). Sadly that we do not have FMOD. FMOD have pretty nice functions like:
FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), true);
float *spectrumData=FSOUND_DSP_GetSpectrum();
Of course implementing own sound-engine which will grab all the info are pretty hard .. (imho). But that sync-with-music functions can allow to create quality animation/demos.
|
|
|
|
Re: AHI & Multi sound output.
|
Posted on: 2010/6/9 21:23
#7787
|
Home away from home
|
@freddix
So next version of DarkEngine will be with music/sound support ? :) Will be cool also to have Sync-music functions (like getting the bass details, volume details, and with basing on it can be done pretty good visual effects).
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/9 20:58
#7788
|
Home away from home
|
@Joeled
Problem is not mesa itself, but also drivers itself. For now (without drivers) we can use dunno what, p96 drivers, compositing maybe .. dunno. And that layer beetwen mesa and hardware (i.e. drivers) are very-very important, because is that place which can give us speedup, or overhead.
When we talk with Hans some time ago (who make drivers for modern radeons), he say that mesa port will be works over Gallium drivers (open source drivers layers).
So, need to make Galium backend, then, port mesa over it. Imho, Galium backend are hard one part. Mesa are not.
AROS devels already do exactly that, so, when we will have Gallium, then we can easyly have a look at source code from AROS.
Not sure that is must be a bounty, just because its part of OS should be. And while OS are commercical, then main developers should do that imho. But i personally hope that it will be done by Hans.
|
|
|
|
Re: New AmigaBounty to raise funds for Developer Loaner Hardware
|
Posted on: 2010/6/9 17:31
#7789
|
Home away from home
|
@TrevorDick I think we need to buy one new for Salas00. Just because he good developer, and do many good aos4 related libs/ports/addons/progs.
Other one i think we need buy for Crisot (demomaker from france, hi do all those demos zero,one,two for aos4). I see on UB.com that he is still in interst about, but hes a1 are die.
And third one for AfxGroup, just because we want Mplayer with normal GUI and alt :)
(just my 2 cents)
|
|
|
|
Re: AHI & Multi sound output.
|
Posted on: 2010/6/9 17:23
#7790
|
Home away from home
|
@freddix - 1 st Question : Its more not about "samples" itself, its about reserving the ahi IO structs. It can be for the small buffer data, or for big one. You also can redefine it with not problems (for example, you play one sound, then you close ahi and alt, and for second sound, you can use the same routine). I use 2 IO strcuts-buffers just because i need 2 buffers in my player_routine (for making double-buffering). It possible of course make everythinkg with 1 IO, or with 10IO (as you wish). So it not about plaing at one time, but about just reserving the same twice for double-buffering (for avoid sutterings beetwen parts of data). - 2st Question: Yes, if you not close older resources, you not need to open it again, and just adding IO will be ok. - 3st Question: I do not remember right what happenes when you will be remove you Process from memory in hardcore way, but by logic, if you will remove it hardcore it will stops all works of course. That how looks my Stop_Play() fucntion:
void stop_module(void)
{
Signal(&player->pr_Task, SIGBREAKF_CTRL_C );
while(player_done !=1){};
PtCleanup(modptr);
if(modbuf) free(modbuf);
player_done=0;
}
You send signal to your process (and you need to check always on that signal in your main player routine), and when it return that everything end, then stop everythink/clean/exit/close/etc. You can see that logic of my fucntions are bad. I.e. i put for example code for cleaning/close/remove ahi reqst/dev to the player routine (it just was more easy for my brains). But in general you need prepare normal fucntions for open/play/close. -4st question: Yes, just by sending signal SIGBREAKF_CTRL_C to your player process (and you need to check it all the time while music plays in your player routine). That of course only about how i do that. For sure its lame and wrong :)
|
|
|
|
Re: AHI & Multi sound output.
|
Posted on: 2010/6/9 16:46
#7791
|
Home away from home
|
@freddix I can show example of how i use it with PTPlay.library (For open mods , decoding them by PtPlay.library and playing over AHI over new process). Code is ugly and alt, but you will see the main idea imho. So, i have fucntion called Play_Module(name) , where name is path to the module. That function looks like this:
BOOL play_module(CONST_STRPTR name_of_module)
{
//-----read file to memory-----
fp_mod_filename = Open(name_of_module,MODE_OLDFILE);
if(fp_mod_filename==0) {
printf("can't open module\n");
goto corozia;
};
ExamineFH(fp_mod_filename, &fib);
modbuf = malloc(fib.fib_Size); if(modbuf == NULL) { printf ("can't malloc for module\n"); goto corozia;};
if (modbuf)
{
Read(fp_mod_filename, modbuf, fib.fib_Size);
}
Close(fp_mod_filename);
//---------
type = PtTest(name_of_module, modbuf, 1200);
if(type == TRUE) { };
if(type == FALSE) { Printf ("this module suck!\n"); goto corozia;};
modptr = PtInit(modbuf, fib.fib_Size, freq, type);
player = CreateNewProcTags(
NP_Entry, &play_module_routine,
NP_Priority, 1,
NP_Name, "Player Process",
TAG_DONE);
return TRUE;
corozia:
if(modbuf) free(modbuf);
printf("somethink going wrong whyle trying to crate mod_player process!\n");
return FALSE;
}
In that fucntion i handle all the crap like open/read module, and create a new process. New process fucntion looks like this:
static void play_module_routine(void)
{
struct MsgPort *AHImp = NULL;
struct AHIRequest *AHIios[2] = {NULL,NULL};
struct AHIRequest *AHIio = NULL;
APTR AHIiocopy = NULL;
BYTE AHIDevice = -1;
char *buf1, *buf2;
ULONG sig;
//-----open/setup ahi
if((AHImp=CreateMsgPort()) != NULL) {
if((AHIio=(struct AHIRequest *)CreateIORequest(AHImp,sizeof(struct AHIRequest))) != NULL) {
AHIio->ahir_Version = 4;
AHIDevice=OpenDevice(AHINAME,0,(struct IORequest *)AHIio,0);
}
}
if(AHIDevice) {
printf("Unable to open %s/0 version 4\n",AHINAME);
goto cleanup;
}
// Make a copy of the request (for double buffering)
AHIiocopy = AllocMem(sizeof(struct AHIRequest), MEMF_ANY);
if(! AHIiocopy) {
printf("can't do AllocMem for AHIiocopu\n");
goto cleanup;
}
CopyMem(AHIio, AHIiocopy, sizeof(struct AHIRequest));
AHIios[0]=AHIio;
AHIios[1]=AHIiocopy;
SetIoErr(0);
//-----------
buf1=malloc(size_of_block*num_of_blocks); if(buf1 == NULL ) { printf ("sorry, can't malloc for ahi_buf1\n"); goto cleanup;};
buf2=malloc(size_of_block*num_of_blocks); if(buf2 == NULL ) { printf ("sorry, can't malloc for ahi_buf2\n"); goto cleanup;}
PtRender(modptr, buf1, buf1+offset_byte, num_of_blocks, size_of_block, 1, bit_depth, num_channels);
PtRender(modptr, buf2, buf2+offset_byte, num_of_blocks, size_of_block, 1, bit_depth, num_channels);
AHIios[0]->ahir_Std.io_Message.mn_Node.ln_Pri = priority;
AHIios[0]->ahir_Std.io_Command = CMD_WRITE;
AHIios[0]->ahir_Std.io_Data = buf1;
AHIios[0]->ahir_Std.io_Length = size_of_block*num_of_blocks;
AHIios[0]->ahir_Std.io_Offset = 0;
AHIios[0]->ahir_Frequency = freq;
AHIios[0]->ahir_Type = ahi_type;
AHIios[0]->ahir_Volume = 0x10000; // Full volume
AHIios[0]->ahir_Position = 0x8000; // Centered
AHIios[0]->ahir_Link = NULL;
SendIO((struct IORequest *) AHIios[0]);
AHIios[1]->ahir_Std.io_Message.mn_Node.ln_Pri = priority;
AHIios[1]->ahir_Std.io_Command = CMD_WRITE;
AHIios[1]->ahir_Std.io_Data = buf2;
AHIios[1]->ahir_Std.io_Length = size_of_block*num_of_blocks;
AHIios[1]->ahir_Std.io_Offset = 0;
AHIios[1]->ahir_Frequency = freq;
AHIios[1]->ahir_Type = ahi_type;
AHIios[1]->ahir_Volume = 0x10000; // Full volume
AHIios[1]->ahir_Position = 0x8000; // Centered
AHIios[1]->ahir_Link = AHIios[0];
SendIO((struct IORequest *) AHIios[1]);
for(;;)
{
sig = Wait(SIGBREAKF_CTRL_C | 1 << AHImp->mp_SigBit);
if (sig & SIGBREAKF_CTRL_C)
break;
WaitIO((struct IORequest *) AHIios[0]);
PtRender(modptr, buf1, buf1+offset_byte, num_of_blocks, size_of_block, 1, bit_depth, num_channels);
AHIios[0]->ahir_Std.io_Message.mn_Node.ln_Pri = priority;
AHIios[0]->ahir_Std.io_Command = CMD_WRITE;
AHIios[0]->ahir_Std.io_Data = buf1;
AHIios[0]->ahir_Std.io_Length = size_of_block*num_of_blocks;
AHIios[0]->ahir_Std.io_Offset = 0;
AHIios[0]->ahir_Link = AHIios[1];
SendIO((struct IORequest *) AHIios[0]);
WaitIO((struct IORequest *) AHIios[1]);
PtRender(modptr, buf2, buf2+offset_byte, num_of_blocks, size_of_block, 1, bit_depth, num_channels);
AHIios[1]->ahir_Std.io_Message.mn_Node.ln_Pri = priority;
AHIios[1]->ahir_Std.io_Command = CMD_WRITE;
AHIios[1]->ahir_Std.io_Data = buf2;
AHIios[1]->ahir_Std.io_Length = size_of_block*num_of_blocks;
AHIios[1]->ahir_Std.io_Offset = 0;
AHIios[1]->ahir_Link = AHIios[0];
SendIO((struct IORequest *) AHIios[1]);
};
// Abort any pending iorequests
AbortIO((struct IORequest *) AHIios[0]);
WaitIO((struct IORequest *) AHIios[0]);
cleanup:
if(!AHIDevice)
CloseDevice((struct IORequest *)AHIio);
DeleteIORequest((struct IORequest *)AHIio);
FreeMem(AHIiocopy,sizeof(struct AHIRequest));
DeleteMsgPort(AHImp);
if(buf1)free(buf1);
if(buf2)free(buf2);
player_done = 1;
}
In that function exactly depacking and plaing of modules in loops happenes. Code are ugly of course, for sure WaitIO and alt are using there wrong, but it works and you can catch main idea here (how create a process with passing to it name of music file). Hope that help
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/9 16:28
#7792
|
Home away from home
|
@samo79 I think if Hyperion will make a bounty like "warp3d speedup". Then they will collect good amount of money. Or what we need to do, for say to him that opengl are so important, even more than x1000 where will be again the same slow warp3d and minigl over it :)
I hope after Timberworf release, they have some time for :)
Rogue, give us some details about opengl on aos4 future plz :)
|
|
|
|
Re: AHI & Multi sound output.
|
Posted on: 2010/6/9 13:59
#7793
|
Home away from home
|
@freddix I usually create new process for every sound and every music track. Dunno still how good that way is :)
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/9 13:58
#7794
|
Home away from home
|
@Radov Yes. And because of it we need new drives and new opengl. Then it will speedup all apps on the same CPUs in 2-3 times. Of course CPU make sense for Math and alt, but for now, our problem its bad realisation of OpenGL (through that rare Warp3d).
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/9 13:29
#7795
|
Home away from home
|
@afxgroup
Maybe google code ? (like aos4 sdl) ? I have also in stock about 5 games, some of them buggy, some of them slow, will be cool to have ability for uplaoding all that sources for everyone in one place .. But we need gygabates of space (i think google.code are limited by that ?)
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/9 13:06
#7796
|
Home away from home
|
I have to agree with AfxGroup about bad realisation of our drivers and opengl support. Its slow. Maybe someone can say that is better than nothing, but when you have on 2-3 times slower app on amiga, if compared with almost the same config (or worse) with PC, then its pretty sad.
Still i really cant understand, why Hyperion not put in Todo list high priority for the making Mesa + new drivers. All new games for aos4 used OpenGL. Many demos and alt uses OpenGL. Its very big and important part of AOS4 support for end users and for bringing it on the boat, so for me it looks pretty unlogical, while they make x1000 and alt, but not do anything related to OpenGL.
Even speedup of Warp3D (which 100% possible), will speed up automatically our OpenGl realisation in twice.
If Hyperion have no time, and want to stop Warp3d support at all, then, why not make it opensource like MiniGL and SDL, so, we all can speed up it yourself. And we will do it faster that Hyperion (not 2 more years) for sure. But that is only "why" :)
Edited by kas1e on 2010/6/9 13:27:44
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/9 11:25
#7797
|
Home away from home
|
@MickJT Maybe you can just upload it sometthere, put link here, ppls will test (i am and others) and if everything ok - then os4depot.
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/9 9:01
#7798
|
Home away from home
|
@afxgroup
Btw, about Aquarium, maybe it's just PROGDIR: and such problems ? Btw, for checking what programm want to open, i usually just "select all" for all the sources, and do "search" on name of data file.
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/8 20:38
#7799
|
Home away from home
|
@Joeled
Already tryed initial port of Lugaru done by MickJT, and must to say, that works on pretty good speed (well, on my 1ghz cpu) even with everything in "high" details.
@Radov I works today on the DROD engine port, and for now have working exe. It was not so easy because of messy makefile and code. Will try tomorrow to test demo versions from their site. But half way are passed..
@AfxGroup How progress going ?:) Give us some screenshots and details about :)
|
|
|
|
Re: New Games possible?
|
Posted on: 2010/6/8 9:39
#7800
|
Home away from home
|
@Joeled Checked. Game done on BlitzMax language. As far as i undertand, BlitzMax is not opensource (but i can be wrong, just do brief look at main page). So while we not have BlitzMax for os4, better found any other manager-soccer kind game which are plain C and/or C++ with usage of SDL and/or OpenGL. As i see here, BlitzMax it's like Hollywood, but with main point about game developming (opengl and such).
|
|
|
|