mirror of
https://github.com/jfdelnero/HxCFloppyEmulator.git
synced 2026-10-27 06:20:50 +00:00
New mod player added
git-svn-id: svn://svn.code.sf.net/p/hxcfloppyemu/code/HxCFloppyEmulator/HxCFloppyEmulator_software/trunk@1148 63fa2f70-6a9b-4bc4-b855-9c6a949b1d69
This commit is contained in:
1 parent
7bf47cfee4
commit
4c11f767b7
5 files changed
+686
-641
No files matched your search
@@ -70,7 +70,7 @@ void CALLBACK SoundHandlerProc(HWAVEOUT hwo,UINT uMsg,DWORD * dwInstance,DWORD *
|
||||
case WOM_OPEN:
|
||||
break;
|
||||
case WOM_DONE:
|
||||
uintro_getnext_soundsample(gb_ui_context,(unsigned char*)((struct wavehdr_tag *)dwParam1)->lpData,sizeof(buffer2));
|
||||
uintro_getnext_soundsample(gb_ui_context,(unsigned short*)((struct wavehdr_tag *)dwParam1)->lpData,sizeof(buffer2)/2);
|
||||
waveOutWrite(shwd,(struct wavehdr_tag *)dwParam1,sizeof(pwhOut2));
|
||||
break;
|
||||
case WOM_CLOSE:
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,170 +1,11 @@
|
||||
#pragma pack(1)
|
||||
|
||||
|
||||
#ifndef MODPLAY_DEF
|
||||
#define MODPLAY_DEF
|
||||
|
||||
#define NUMMAXCHANNELS 32
|
||||
|
||||
#define MAXNOTES 36
|
||||
|
||||
typedef unsigned char muchar;
|
||||
typedef unsigned short muint;
|
||||
typedef unsigned long mulong;
|
||||
|
||||
static short periodtable[]=
|
||||
{
|
||||
856,808,762,720,678,640,604,570,538,508,480,453,
|
||||
428,404,381,360,339,320,302,285,269,254,240,226,
|
||||
214,202,190,180,170,160,151,143,135,127,120,113,
|
||||
850,802,757,715,674,637,601,567,535,505,477,450,
|
||||
425,401,379,357,337,318,300,284,268,253,239,225,
|
||||
213,201,189,179,169,159,150,142,134,126,119,113,
|
||||
844,796,752,709,670,632,597,563,532,502,474,447,
|
||||
422,398,376,355,335,316,298,282,266,251,237,224,
|
||||
211,199,188,177,167,158,149,141,133,125,118,112,
|
||||
838,791,746,704,665,628,592,559,528,498,470,444,
|
||||
419,395,373,352,332,314,296,280,264,249,235,222,
|
||||
209,198,187,176,166,157,148,140,132,125,118,111,
|
||||
832,785,741,699,660,623,588,555,524,495,467,441,
|
||||
416,392,370,350,330,312,294,278,262,247,233,220,
|
||||
208,196,185,175,165,156,147,139,131,124,117,110,
|
||||
826,779,736,694,655,619,584,551,520,491,463,437,
|
||||
413,390,368,347,328,309,292,276,260,245,232,219,
|
||||
206,195,184,174,164,155,146,138,130,123,116,109,
|
||||
820,774,730,689,651,614,580,547,516,487,460,434,
|
||||
410,387,365,345,325,307,290,274,258,244,230,217,
|
||||
205,193,183,172,163,154,145,137,129,122,115,109,
|
||||
814,768,725,684,646,610,575,543,513,484,457,431,
|
||||
407,384,363,342,323,305,288,272,256,242,228,216,
|
||||
204,192,181,171,161,152,144,136,128,121,114,108,
|
||||
907,856,808,762,720,678,640,604,570,538,508,480,
|
||||
453,428,404,381,360,339,320,302,285,269,254,240,
|
||||
226,214,202,190,180,170,160,151,143,135,127,120,
|
||||
900,850,802,757,715,675,636,601,567,535,505,477,
|
||||
450,425,401,379,357,337,318,300,284,268,253,238,
|
||||
225,212,200,189,179,169,159,150,142,134,126,119,
|
||||
894,844,796,752,709,670,632,597,563,532,502,474,
|
||||
447,422,398,376,355,335,316,298,282,266,251,237,
|
||||
223,211,199,188,177,167,158,149,141,133,125,118,
|
||||
887,838,791,746,704,665,628,592,559,528,498,470,
|
||||
444,419,395,373,352,332,314,296,280,264,249,235,
|
||||
222,209,198,187,176,166,157,148,140,132,125,118,
|
||||
881,832,785,741,699,660,623,588,555,524,494,467,
|
||||
441,416,392,370,350,330,312,294,278,262,247,233,
|
||||
220,208,196,185,175,165,156,147,139,131,123,117,
|
||||
875,826,779,736,694,655,619,584,551,520,491,463,
|
||||
437,413,390,368,347,328,309,292,276,260,245,232,
|
||||
219,206,195,184,174,164,155,146,138,130,123,116,
|
||||
868,820,774,730,689,651,614,580,547,516,487,460,
|
||||
434,410,387,365,345,325,307,290,274,258,244,230,
|
||||
217,205,193,183,172,163,154,145,137,129,122,115,
|
||||
862,814,768,725,684,646,610,575,543,513,484,457,
|
||||
431,407,384,363,342,323,305,288,272,256,242,228,
|
||||
216,203,192,181,171,161,152,144,136,128,121,114
|
||||
};
|
||||
|
||||
static short sintable[]={
|
||||
0, 24, 49, 74, 97,120,141,161,
|
||||
180,197,212,224,235,244,250,253,
|
||||
255,253,250,244,235,224,212,197,
|
||||
180,161,141,120, 97, 74, 49, 24
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
unsigned long pattern;
|
||||
unsigned long order;
|
||||
unsigned long bufferpos;
|
||||
} modevent;
|
||||
|
||||
typedef struct {
|
||||
muchar name[22];
|
||||
muint length;
|
||||
muchar finetune;
|
||||
muchar volume;
|
||||
muint reppnt;
|
||||
muint replen;
|
||||
} sample;
|
||||
|
||||
typedef struct {
|
||||
muchar sampperiod;
|
||||
muchar period;
|
||||
muchar sampeffect;
|
||||
muchar effect;
|
||||
} note;
|
||||
|
||||
typedef struct {
|
||||
muchar title[20];
|
||||
sample samples[31];
|
||||
muchar length;
|
||||
muchar protracker;
|
||||
muchar patterntable[128];
|
||||
muchar signature[4];
|
||||
muchar speed;
|
||||
} module;
|
||||
|
||||
typedef struct {
|
||||
char * sampdata;
|
||||
muint sampnum;
|
||||
muint length;
|
||||
muint reppnt;
|
||||
muint replen;
|
||||
muint period;
|
||||
muchar volume;
|
||||
mulong ticks;
|
||||
muchar effect;
|
||||
muchar parameffect;
|
||||
|
||||
short decalperiod;
|
||||
short decalperiod2;
|
||||
short portaspeed;
|
||||
short portaperiod;
|
||||
short vibraperiod;
|
||||
short Arpperiods[3];
|
||||
muchar ArpIndex;
|
||||
|
||||
short oldk;
|
||||
muchar oldoffsetconfig;
|
||||
muchar volumeslide;
|
||||
|
||||
muchar vibraparam;
|
||||
muchar vibrapointeur;
|
||||
|
||||
muchar finetune;
|
||||
} channel;
|
||||
|
||||
typedef struct {
|
||||
module song;
|
||||
char * sampledata[31];
|
||||
note * patterndata[64];
|
||||
|
||||
mulong playrate;
|
||||
muint tablepos;
|
||||
muint patternpos;
|
||||
muchar bpm;
|
||||
mulong patternticks;
|
||||
mulong patterntickse;
|
||||
mulong patternticksaim;
|
||||
mulong sampleticksconst;
|
||||
|
||||
mulong samplenb;
|
||||
|
||||
channel channels[NUMMAXCHANNELS];
|
||||
|
||||
modevent* modev;
|
||||
|
||||
muint number_of_channels;
|
||||
//muint freqtab[288+8];
|
||||
|
||||
} modcontext;
|
||||
|
||||
modcontext * modload(char * filename,char * modmemory,char * debug);
|
||||
int modplay(modcontext * mod);
|
||||
void fillbuffer(muchar * buffer, unsigned long nbsample,modcontext * mod);
|
||||
void worknote(note * nptr, channel * cptr,char t,modcontext * mod);
|
||||
void workeffect(note * nptr, channel * cptr);
|
||||
|
||||
void modregevent(modevent *mevent,modcontext * mod);
|
||||
void * hxcmod_load(void * modmemory);
|
||||
void hxcmod_fillbuffer(void * modcontext,unsigned short * buffer, unsigned long nbsample);
|
||||
void hxcmod_unload(void * modcontext);
|
||||
|
||||
#endif
|
||||
|
||||
#pragma pack()
|
||||
@@ -48,6 +48,8 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "hxcmod.h"
|
||||
|
||||
#include "microintro.h"
|
||||
#include "mod32.h"
|
||||
#include "packer/pack.h"
|
||||
@@ -60,6 +62,8 @@
|
||||
#include "data/data_vim_not_again_mod.h"
|
||||
#include "data/data_zandax_supplydas_booze_mod.h"
|
||||
|
||||
void * mp;
|
||||
|
||||
typedef struct scrolltab_
|
||||
{
|
||||
int ysrc;
|
||||
@@ -276,31 +280,23 @@ uintro_context * uintro_init(unsigned short xsize,unsigned short ysize)
|
||||
{
|
||||
case 0:
|
||||
data_maktone_class_cracktro15_mod->unpacked_data=mi_unpack(data_maktone_class_cracktro15_mod->data,data_maktone_class_cracktro15_mod->csize ,data_maktone_class_cracktro15_mod->data, data_maktone_class_cracktro15_mod->size);
|
||||
#ifdef WIN32
|
||||
InitModule(NULL,buffer1,16,data_maktone_class_cracktro15_mod->unpacked_data);
|
||||
#endif
|
||||
mp = hxcmod_load(data_maktone_class_cracktro15_mod->unpacked_data);
|
||||
break;
|
||||
case 1:
|
||||
data_jozz_cognition_mod->unpacked_data=mi_unpack(data_jozz_cognition_mod->data,data_jozz_cognition_mod->csize ,data_jozz_cognition_mod->data, data_jozz_cognition_mod->size);
|
||||
#ifdef WIN32
|
||||
InitModule(NULL,buffer1,16,data_jozz_cognition_mod->unpacked_data);
|
||||
#endif
|
||||
mp = hxcmod_load(data_jozz_cognition_mod->unpacked_data);
|
||||
break;
|
||||
case 2:
|
||||
data_zandax_supplydas_booze_mod->unpacked_data=mi_unpack(data_zandax_supplydas_booze_mod->data,data_zandax_supplydas_booze_mod->csize ,data_zandax_supplydas_booze_mod->data, data_zandax_supplydas_booze_mod->size);
|
||||
#ifdef WIN32
|
||||
InitModule(NULL,buffer1,16,data_zandax_supplydas_booze_mod->unpacked_data);
|
||||
#endif
|
||||
mp = hxcmod_load(data_zandax_supplydas_booze_mod->unpacked_data);
|
||||
break;
|
||||
case 3:
|
||||
data_vim_not_again_mod->unpacked_data=mi_unpack(data_vim_not_again_mod->data,data_vim_not_again_mod->csize ,data_vim_not_again_mod->data, data_vim_not_again_mod->size);
|
||||
#ifdef WIN32
|
||||
InitModule(NULL,buffer1,16,data_vim_not_again_mod->unpacked_data);
|
||||
#endif
|
||||
mp = hxcmod_load(data_vim_not_again_mod->unpacked_data);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
return ui_context;
|
||||
}
|
||||
|
||||
@@ -334,42 +330,31 @@ void uintro_reset(uintro_context * ui_context)
|
||||
case 0:
|
||||
if(!data_maktone_class_cracktro15_mod->unpacked_data)
|
||||
data_maktone_class_cracktro15_mod->unpacked_data=mi_unpack(data_maktone_class_cracktro15_mod->data,data_maktone_class_cracktro15_mod->csize ,data_maktone_class_cracktro15_mod->data, data_maktone_class_cracktro15_mod->size);
|
||||
#ifdef WIN32
|
||||
InitModule(NULL,buffer1,16,data_maktone_class_cracktro15_mod->unpacked_data);
|
||||
#endif
|
||||
mp = hxcmod_load(data_maktone_class_cracktro15_mod->unpacked_data);
|
||||
break;
|
||||
case 1:
|
||||
if(!data_jozz_cognition_mod->unpacked_data)
|
||||
data_jozz_cognition_mod->unpacked_data=mi_unpack(data_jozz_cognition_mod->data,data_jozz_cognition_mod->csize ,data_jozz_cognition_mod->data, data_jozz_cognition_mod->size);
|
||||
#ifdef WIN32
|
||||
InitModule(NULL,buffer1,16,data_jozz_cognition_mod->unpacked_data);
|
||||
#endif
|
||||
mp = hxcmod_load(data_jozz_cognition_mod->unpacked_data);
|
||||
break;
|
||||
case 2:
|
||||
if(!data_zandax_supplydas_booze_mod->unpacked_data)
|
||||
data_zandax_supplydas_booze_mod->unpacked_data=mi_unpack(data_zandax_supplydas_booze_mod->data,data_zandax_supplydas_booze_mod->csize ,data_zandax_supplydas_booze_mod->data, data_zandax_supplydas_booze_mod->size);
|
||||
#ifdef WIN32
|
||||
InitModule(NULL,buffer1,16,data_zandax_supplydas_booze_mod->unpacked_data);
|
||||
#endif
|
||||
mp = hxcmod_load(data_zandax_supplydas_booze_mod->unpacked_data);
|
||||
break;
|
||||
case 3:
|
||||
if(!data_vim_not_again_mod->unpacked_data)
|
||||
data_vim_not_again_mod->unpacked_data=mi_unpack(data_vim_not_again_mod->data,data_vim_not_again_mod->csize ,data_vim_not_again_mod->data, data_vim_not_again_mod->size);
|
||||
#ifdef WIN32
|
||||
InitModule(NULL,buffer1,16,data_vim_not_again_mod->unpacked_data);
|
||||
#endif
|
||||
mp = hxcmod_load(data_vim_not_again_mod->unpacked_data);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void uintro_getnext_soundsample(uintro_context * democontext,unsigned char* buffer,int size)
|
||||
void uintro_getnext_soundsample(uintro_context * democontext,unsigned short* buffer,int size)
|
||||
{
|
||||
#ifdef WIN32
|
||||
GiveMeSamples(buffer,size);
|
||||
#endif
|
||||
hxcmod_fillbuffer(mp,buffer, size/2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -26,5 +26,5 @@ typedef struct uintro_context_
|
||||
uintro_context * uintro_init(unsigned short xsize,unsigned short ysize);
|
||||
void uintro_reset(uintro_context * ui_context);
|
||||
void uintro_getnextframe(uintro_context * democontext);
|
||||
void uintro_getnext_soundsample(uintro_context * democontext,unsigned char* buffer,int size);
|
||||
void uintro_getnext_soundsample(uintro_context * democontext,unsigned short* buffer,int size);
|
||||
void uintro_deinit(uintro_context * democontext);
|
||||
Reference in new issue
Block a user