now,we can use libaudiocodec to decode mp3 and aac

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

cooleyes
Posts: 123
Joined: Thu May 18, 2006 3:30 pm

now,we can use libaudiocodec to decode mp3 and aac

Post by cooleyes »

hi, all

I just found out how to decode mp3 and aac using libaudiocodec now!

here is some sample code for decode mp3 and aac file:

mp3 file decode:

Code: Select all

#include <pspkernel.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <pspdebug.h>
#include <psppower.h>
#include <stdio.h>
#include <stdlib.h>
#include <pspkernel.h>
#include <pspctrl.h>
#include <psppower.h>
#include <pspdebug.h>
#include <psprtc.h>
#include <pspsdk.h>
#include <pspaudiocodec.h>
#include <pspaudio.h>
#include <string.h>
#include <malloc.h>

int SetupCallbacks&#40;&#41;;

PSP_MODULE_INFO&#40;"MP3 decodeTest", 0x1000, 1, 1&#41;;
PSP_MAIN_THREAD_ATTR&#40;0&#41;;

__attribute__ &#40;&#40;constructor&#41;&#41;
void loaderInit&#40;&#41;&#123;
	pspKernelSetKernelPC&#40;&#41;;
	pspSdkInstallNoDeviceCheckPatch&#40;&#41;;
	pspSdkInstallNoPlainModuleCheckPatch&#40;&#41;;
	pspSdkInstallKernelLoadModulePatch&#40;&#41;;
&#125;

SceCtrlData input;

static int bitrates&#91;&#93; = &#123;0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 &#125;;

unsigned long mp3_codec_buffer&#91;65&#93; __attribute__&#40;&#40;aligned&#40;64&#41;&#41;&#41;;
short mp3_mix_buffer&#91;1152 * 2&#93; __attribute__&#40;&#40;aligned&#40;64&#41;&#41;&#41;;


SceUID mp3_handle;
u8* mp3_data_buffer;
u16 mp3_data_align;
u32 mp3_sample_per_frame;
u16 mp3_channel_mode;
u32 mp3_data_start;
u32 mp3_data_size;
u8 mp3_getEDRAM;
u32 mp3_channels;
u32 mp3_samplerate;


int main&#40;void&#41;
&#123;
	SetupCallbacks&#40;&#41;;
	
	int result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/me_for_vsh.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
	
	result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/videocodec.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
	
	result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/audiocodec.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
	
	result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/mpegbase.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
	
	result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/mpeg_vsh.prx", PSP_MEMORY_PARTITION_USER&#41;;
	
	pspSdkFixupImports&#40;result&#41;;
	
	sceMpegInit&#40;&#41;;
	
	mp3_handle = sceIoOpen&#40;"ms0&#58;/Test.MP3", PSP_O_RDONLY, 0777&#41;;
	if &#40;  ! mp3_handle &#41;
		goto wait;
	
	mp3_channels = 2;
	mp3_samplerate = 44100; //this is mp3 file's samplerate, also can be 48000,....
	mp3_sample_per_frame = 1152;
	
	mp3_data_start = sceIoLseek32&#40;mp3_handle, 0, PSP_SEEK_CUR&#41;;
	
	memset&#40;mp3_codec_buffer, 0, sizeof&#40;mp3_codec_buffer&#41;&#41;;
	
	if &#40; sceAudiocodecCheckNeedMem&#40;mp3_codec_buffer, 0x1002&#41; < 0 &#41; 
		goto wait;
	if &#40; sceAudiocodecGetEDRAM&#40;mp3_codec_buffer, 0x1002&#41; < 0 &#41;
			goto wait;
	mp3_getEDRAM = 1;
	
	if &#40; sceAudiocodecInit&#40;mp3_codec_buffer, 0x1002&#41; < 0 &#41; &#123;
		goto wait;
	&#125;
	
	int eof = 0;	
	while&#40; !eof &#41; &#123;
		int samplesdecoded;
		memset&#40;mp3_mix_buffer, 0, mp3_sample_per_frame*2*2&#41;;
		unsigned char mp3_header_buf&#91;4&#93;;
		if &#40; sceIoRead&#40; mp3_handle, mp3_header_buf, 4 &#41; != 4 &#41; &#123;
			eof = 1;
			continue;
		&#125;
		int mp3_header = mp3_header_buf&#91;0&#93;;
		mp3_header = &#40;mp3_header<<8&#41; | mp3_header_buf&#91;1&#93;;
		mp3_header = &#40;mp3_header<<8&#41; | mp3_header_buf&#91;2&#93;;
		mp3_header = &#40;mp3_header<<8&#41; | mp3_header_buf&#91;3&#93;;
		
		int bitrate = &#40;mp3_header & 0xf000&#41; >> 12;
		int padding = &#40;mp3_header & 0x200&#41; >> 9;
		
		int frame_size = 144000*bitrates&#91;bitrate&#93;/mp3_samplerate + padding;
		
		if &#40; mp3_data_buffer &#41;
			free&#40;mp3_data_buffer&#41;;
		mp3_data_buffer = &#40;u8*&#41;memalign&#40;64, frame_size&#41;;
		
		sceIoLseek32&#40;mp3_handle, mp3_data_start, PSP_SEEK_SET&#41;; //seek back
		
		if &#40; sceIoRead&#40; mp3_handle, mp3_data_buffer, frame_size &#41; != frame_size &#41; &#123;
			eof = 1;
			continue;
		&#125;
		
		mp3_data_start += frame_size;
		
		mp3_codec_buffer&#91;6&#93; = &#40;unsigned long&#41;mp3_data_buffer;
		mp3_codec_buffer&#91;8&#93; = &#40;unsigned long&#41;mp3_mix_buffer;
		
		mp3_codec_buffer&#91;7&#93; = mp3_codec_buffer&#91;10&#93; = frame_size;
		mp3_codec_buffer&#91;9&#93; = mp3_sample_per_frame * 4;
	
		int res = sceAudiocodecDecode&#40;mp3_codec_buffer, 0x1002&#41;;
		if &#40; res < 0 &#41; &#123;
			eof = 1;
			continue;
		&#125;
		samplesdecoded = mp3_sample_per_frame;
	&#125;

wait&#58;
	
	if &#40; mp3_handle &#41; &#123;
		sceIoClose&#40;mp3_handle&#41;;
	&#125;
	if &#40; mp3_data_buffer&#41; &#123;
		free&#40;mp3_data_buffer&#41;;
	&#125;
	if &#40; mp3_getEDRAM &#41; &#123;
		sceAudiocodecReleaseEDRAM&#40;mp3_codec_buffer&#41;;
	&#125;
	
	sceCtrlReadBufferPositive&#40;&input, 1&#41;;
	while&#40;!&#40;input.Buttons & PSP_CTRL_TRIANGLE&#41;&#41;
	&#123;
		sceKernelDelayThread&#40;10000&#41;;	// wait 10 milliseconds
		sceCtrlReadBufferPositive&#40;&input, 1&#41;;
	&#125;
	
	sceKernelExitGame&#40;&#41;;
	return 0;
&#125;


/* Exit callback */
int exit_callback&#40;int arg1, int arg2, void *common&#41;
&#123;
	sceKernelExitGame&#40;&#41;;
	return 0;
&#125;


/* Callback thread */
int CallbackThread&#40;SceSize args, void *argp&#41;
&#123;
	int cbid;

	cbid = sceKernelCreateCallback&#40;"Exit Callback", exit_callback, NULL&#41;;
	sceKernelRegisterExitCallback&#40;cbid&#41;;

	sceKernelSleepThreadCB&#40;&#41;;

	return 0;
&#125;


/* Sets up the callback thread and returns its thread id */
int SetupCallbacks&#40;void&#41;
&#123;
	int thid = 0;

	thid = sceKernelCreateThread&#40;"update_thread", CallbackThread, 0x11, 0xFA0, 0, 0&#41;;
	if&#40;thid >= 0&#41;
	&#123;
		sceKernelStartThread&#40;thid, 0, 0&#41;;
	&#125;

	return thid;
&#125;

aac( ADTS header ) file decode( if want to decode m4a, you must use libmp4 to get the aac frame data from mp4 box)

Code: Select all

#include <pspkernel.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <pspdebug.h>
#include <psppower.h>
#include <stdio.h>
#include <stdlib.h>
#include <pspkernel.h>
#include <pspctrl.h>
#include <psppower.h>
#include <pspdebug.h>
#include <psprtc.h>
#include <pspsdk.h>
#include <pspaudiocodec.h>
#include <pspaudio.h>
#include <string.h>
#include <malloc.h>

int SetupCallbacks&#40;&#41;;

PSP_MODULE_INFO&#40;"MP3 decodeTest", 0x1000, 1, 1&#41;;
PSP_MAIN_THREAD_ATTR&#40;0&#41;;

__attribute__ &#40;&#40;constructor&#41;&#41;
void loaderInit&#40;&#41;&#123;
	pspKernelSetKernelPC&#40;&#41;;
	pspSdkInstallNoDeviceCheckPatch&#40;&#41;;
	pspSdkInstallNoPlainModuleCheckPatch&#40;&#41;;
	pspSdkInstallKernelLoadModulePatch&#40;&#41;;
&#125;

SceCtrlData input;

static int bitrates&#91;&#93; = &#123;0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 &#125;;

unsigned long aac_codec_buffer&#91;65&#93; __attribute__&#40;&#40;aligned&#40;64&#41;&#41;&#41;;
short aac_mix_buffer&#91;1024 * 2&#93; __attribute__&#40;&#40;aligned&#40;64&#41;&#41;&#41;;


SceUID aac_handle;
u8* aac_data_buffer;
u16 aac_data_align;
u32 aac_sample_per_frame;
u16 aac_channel_mode;
u32 aac_data_start;
u32 aac_data_size;
u8 aac_getEDRAM;
u32 aac_channels;
u32 aac_samplerate;


int main&#40;void&#41;
&#123;
	SetupCallbacks&#40;&#41;;
	
	int result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/me_for_vsh.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
	
	result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/videocodec.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
	
	result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/audiocodec.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
	
	result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/mpegbase.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
	
	result = pspSdkLoadStartModule&#40;"flash0&#58;/kd/mpeg_vsh.prx", PSP_MEMORY_PARTITION_USER&#41;;
	
	pspSdkFixupImports&#40;result&#41;;
	
	sceMpegInit&#40;&#41;;
	
	aac_handle = sceIoOpen&#40;"ms0&#58;/Test.AAC", PSP_O_RDONLY, 0777&#41;; 
	if &#40;  ! aac_handle &#41;
		goto wait;
	
	aac_channels = 2;
	aac_samplerate = 44100; //this is aac file's samplerate, also can be 48000,....
	aac_sample_per_frame = 1024;
	
	aac_data_start = sceIoLseek32&#40;aac_handle, 0, PSP_SEEK_CUR&#41;;
	
	memset&#40;aac_codec_buffer, 0, sizeof&#40;aac_codec_buffer&#41;&#41;;
	
	if &#40; sceAudiocodecCheckNeedMem&#40;aac_codec_buffer, 0x1003&#41; < 0 &#41; 
		goto wait;
	if &#40; sceAudiocodecGetEDRAM&#40;aac_codec_buffer, 0x1003&#41; < 0 &#41;
			goto wait;
	aac_getEDRAM = 1;
	
	aac_codec_buffer&#91;10&#93; = aac_samplerate;
	if &#40; sceAudiocodecInit&#40;aac_codec_buffer, 0x1003&#41; < 0 &#41; &#123;
		goto wait;
	&#125;
	
	int eof = 0;	
	while&#40; !eof &#41; &#123;
		int samplesdecoded;
		memset&#40;aac_mix_buffer, 0, aac_sample_per_frame*2*2&#41;;
		unsigned char aac_header_buf&#91;7&#93;;
		if &#40; sceIoRead&#40; aac_handle, aac_header_buf, 7 &#41; != 7 &#41; &#123;
			eof = 1;
			continue;
		&#125;
		int aac_header = aac_header_buf&#91;3&#93;;
		aac_header = &#40;aac_header<<8&#41; | aac_header_buf&#91;4&#93;;
		aac_header = &#40;aac_header<<8&#41; | aac_header_buf&#91;5&#93;;
		aac_header = &#40;aac_header<<8&#41; | aac_header_buf&#91;6&#93;;
		
		int frame_size = aac_header & 67100672;
		frame_size = frame_size >> 13;
		frame_size = frame_size - 7;
		
		if &#40; aac_data_buffer &#41;
			free&#40;aac_data_buffer&#41;;
		aac_data_buffer = &#40;u8*&#41;memalign&#40;64, frame_size&#41;;
		
		if &#40; sceIoRead&#40; aac_handle, aac_data_buffer, frame_size &#41; != frame_size &#41; &#123;
			eof = 1;
			continue;
		&#125;
		
		aac_data_start += &#40;frame_size+7&#41;;
		
		aac_codec_buffer&#91;6&#93; = &#40;unsigned long&#41;aac_data_buffer;
		aac_codec_buffer&#91;8&#93; = &#40;unsigned long&#41;aac_mix_buffer;
		
		aac_codec_buffer&#91;7&#93; = frame_size;
		aac_codec_buffer&#91;9&#93; = aac_sample_per_frame * 4;
		
	
		int res = sceAudiocodecDecode&#40;aac_codec_buffer, 0x1003&#41;;
		if &#40; res < 0 &#41; &#123;
			eof = 1;
			continue;
		&#125;
		samplesdecoded = aac_sample_per_frame;
	&#125;

wait&#58;
	
	if &#40; aac_handle &#41; &#123;
		sceIoClose&#40;aac_handle&#41;;
	&#125;
	if &#40; aac_data_buffer&#41; &#123;
		free&#40;aac_data_buffer&#41;;
	&#125;
	if &#40; aac_getEDRAM &#41; &#123;
		sceAudiocodecReleaseEDRAM&#40;aac_codec_buffer&#41;;
	&#125;
	
	sceCtrlReadBufferPositive&#40;&input, 1&#41;;
	while&#40;!&#40;input.Buttons & PSP_CTRL_TRIANGLE&#41;&#41;
	&#123;
		sceKernelDelayThread&#40;10000&#41;;	// wait 10 milliseconds
		sceCtrlReadBufferPositive&#40;&input, 1&#41;;
	&#125;
	
	sceKernelExitGame&#40;&#41;;
	return 0;
&#125;


/* Exit callback */
int exit_callback&#40;int arg1, int arg2, void *common&#41;
&#123;
	sceKernelExitGame&#40;&#41;;
	return 0;
&#125;


/* Callback thread */
int CallbackThread&#40;SceSize args, void *argp&#41;
&#123;
	int cbid;

	cbid = sceKernelCreateCallback&#40;"Exit Callback", exit_callback, NULL&#41;;
	sceKernelRegisterExitCallback&#40;cbid&#41;;

	sceKernelSleepThreadCB&#40;&#41;;

	return 0;
&#125;


/* Sets up the callback thread and returns its thread id */
int SetupCallbacks&#40;void&#41;
&#123;
	int thid = 0;

	thid = sceKernelCreateThread&#40;"update_thread", CallbackThread, 0x11, 0xFA0, 0, 0&#41;;
	if&#40;thid >= 0&#41;
	&#123;
		sceKernelStartThread&#40;thid, 0, 0&#41;;
	&#125;

	return thid;
&#125;

Last edited by cooleyes on Sun Jun 10, 2007 11:35 pm, edited 1 time in total.
Insert_witty_name
Posts: 376
Joined: Wed May 10, 2006 11:31 pm

Post by Insert_witty_name »

Excellent work again.

I'm gonna play with these right away :)
J.F.
Posts: 2906
Joined: Sun Feb 22, 2004 11:41 am

Post by J.F. »

Great work! This should be very handy for people wanting background music for their app. Too bad Sony never added ogg support to the firmware.
Insert_witty_name
Posts: 376
Joined: Wed May 10, 2006 11:31 pm

Post by Insert_witty_name »

Unfortunately sceAudiocodecDecode returns an error code of 0x807f0002 for me using the mp3 example.

Maybe it's something to do with the mp3 file I am using, what are the specs of your test mp3 file?
jockyw2001
Posts: 339
Joined: Thu Sep 29, 2005 4:19 pm

Post by jockyw2001 »

Holy crap! Despite the heatwave over here this will motivate me to get back to coding business :)

Excellent work cooleyes!
cooleyes
Posts: 123
Joined: Thu May 18, 2006 3:30 pm

Post by cooleyes »

Insert_witty_name wrote:Unfortunately sceAudiocodecDecode returns an error code of 0x807f0002 for me using the mp3 example.

Maybe it's something to do with the mp3 file I am using, what are the specs of your test mp3 file?
I have test this code, it work well.
maybe your mp3 file have some TAG in the header,
you must skip the TAG, so your data_start will not be zero.

and these code , I will add to my project PPA(PMPlayer advance),
PPA can play PMP(AVC+MP3), PMP(AVC+AAC) , PMP(AVC+48KMP3), PMP(AVC+48KAAC) now.
Mihawk
Posts: 29
Joined: Tue Apr 03, 2007 2:04 am

Post by Mihawk »

I didn't test it yet, so how exactly does this work?
Is sceAudiocodecDecode a blocking function that decodes and plays the samples directly? Or does it just decode the data and put the samples into the mp3_mix_buffer?

I would prefer the second one ;)
because I would like to use it to just decode an mp3 to do some processing on it (get a DCT, show DCT gfx and eventually play a part of the mp3).
User avatar
Raphael
Posts: 646
Joined: Tue Jan 17, 2006 4:54 pm
Location: Germany
Contact:

Post by Raphael »

Once again, excellent work cooleyes. You have my utter most respect :)
<Don't push the river, it flows.>
http://wordpress.fx-world.org - my devblog
http://wiki.fx-world.org - VFPU documentation wiki

Alexander Berl
User avatar
dot_blank
Posts: 498
Joined: Wed Sep 28, 2005 8:47 am
Location: Brasil

Post by dot_blank »

you are def the man cooleyes :) your audio work and also
your translations work for the characters sets of PMPA are just great
thanx alot :)

but why is there SceUID mp3_handle;
and then redeclaration / definition @
SceUID mp3_handle = sceIoOpen("ms0:/Test.MP3", PSP_O_RDONLY, 0777);
if ( ! mp3_handle )
goto wait;

same applies to AAC ...your sample works but i am just curious about above
what design does this provide
10011011 00101010 11010111 10001001 10111010
cooleyes
Posts: 123
Joined: Thu May 18, 2006 3:30 pm

Post by cooleyes »

dot_blank wrote:you are def the man cooleyes :) your audio work and also
your translations work for the characters sets of PMPA are just great
thanx alot :)

but why is there SceUID mp3_handle;
and then redeclaration / definition @
SceUID mp3_handle = sceIoOpen("ms0:/Test.MP3", PSP_O_RDONLY, 0777);
if ( ! mp3_handle )
goto wait;

same applies to AAC ...your sample works but i am just curious about above
what design does this provide
hehe&#65292;that is a little bug.
I forgot I have designed mp3_handle.
:P
User avatar
dot_blank
Posts: 498
Joined: Wed Sep 28, 2005 8:47 am
Location: Brasil

Post by dot_blank »

ahh :) ok buddy i understand it happens to us all :)
10011011 00101010 11010111 10001001 10111010
jsharrad
Posts: 100
Joined: Thu Oct 20, 2005 3:06 am

Post by jsharrad »

That is awesome, thanks cooleyes.
raf
Posts: 57
Joined: Thu Oct 13, 2005 7:38 am

Post by raf »

Excellent job, cooleyes!!. I'll look at adding this into PSPRadio asap; it would really help release some CPU cycles for the visualizers :)

Thanks!,

Raf.
jsharrad
Posts: 100
Joined: Thu Oct 20, 2005 3:06 am

Post by jsharrad »

raf wrote:Excellent job, cooleyes!!. I'll look at adding this into PSPRadio asap; it would really help release some CPU cycles for the visualizers :)

Thanks!,

Raf.
heh, I pulled some of the visualizer plugins from your svn last night and tried them with it, they work really well :)
jockyw2001
Posts: 339
Joined: Thu Sep 29, 2005 4:19 pm

Post by jockyw2001 »

cooleyes wrote:and these code , I will add to my project PPA(PMPlayer advance),
PPA can play PMP(AVC+MP3), PMP(AVC+AAC) , PMP(AVC+48KMP3), PMP(AVC+48KAAC) now.
Have you already done this? is the sourcecode available?
I'm trying to get your code to work in PMPVLC player.
cooleyes
Posts: 123
Joined: Thu May 18, 2006 3:30 pm

Post by cooleyes »

jockyw2001 wrote:
cooleyes wrote:and these code , I will add to my project PPA(PMPlayer advance),
PPA can play PMP(AVC+MP3), PMP(AVC+AAC) , PMP(AVC+48KMP3), PMP(AVC+48KAAC) now.
Have you already done this? is the sourcecode available?
I'm trying to get your code to work in PMPVLC player.
yes, I had released a new version PPA.

the source available here:

http://files.cngba.com/cooleyes/PPA/PPA ... 070613.rar
jockyw2001
Posts: 339
Joined: Thu Sep 29, 2005 4:19 pm

Post by jockyw2001 »

cooleyes: thx, but that link doesn't work, it just shows me a blank page with a link to http://www.cngba.com

Do you have an alternative download location?
cooleyes
Posts: 123
Joined: Thu May 18, 2006 3:30 pm

Post by cooleyes »

jockyw2001 wrote:cooleyes: thx, but that link doesn't work, it just shows me a blank page with a link to http://www.cngba.com

Do you have an alternative download location?
try this.
http://mihd.net/hxwov1
jockyw2001
Posts: 339
Joined: Thu Sep 29, 2005 4:19 pm

Post by jockyw2001 »

cooleyes wrote:try this.
http://mihd.net/hxwov1
Great, thx!
User avatar
Raphael
Posts: 646
Joined: Tue Jan 17, 2006 4:54 pm
Location: Germany
Contact:

Post by Raphael »

cooleyes, if you want I can offer you webspace for PPA. Just give me a PM if you're interested
<Don't push the river, it flows.>
http://wordpress.fx-world.org - my devblog
http://wiki.fx-world.org - VFPU documentation wiki

Alexander Berl
UD1121
Posts: 6
Joined: Sat Sep 23, 2006 10:57 am

Post by UD1121 »

cooleyes, can i have a link to PPA (not the source code)? and what else is new besides the audio stuff?
Art
Posts: 642
Joined: Wed Nov 09, 2005 8:01 am

Post by Art »

Could someone who has this working pls provide the makefile used?
Cheers, Art.
metlhed
Posts: 1
Joined: Sun Jul 08, 2007 11:30 am

Post by metlhed »

I'm having some trouble getting this to work too. I'm using the 20070626 toolchain script built in linux. I can compile the example fine but when running it I see the memory card being accessed but there is no sound. It also finishes much faster than it should if it was playing.

Here is the makefile I'm using:

Code: Select all

TARGET = mp3
OBJS = main.o
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $&#40;CFLAGS&#41; -fno-exceptions -fno-rtti
ASFLAGS = $&#40;CFLAGS&#41;
LIBDIR =

LIBS = -lpspaudiocodec -lpspmpeg

LDFLAGS =
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = mp3 test
#PSP_EBOOT_ICON = ICON0.PNG

PSPSDK=$&#40;shell psp-config --pspsdk-path&#41;
include $&#40;PSPSDK&#41;/lib/build.mak
Art
Posts: 642
Joined: Wed Nov 09, 2005 8:01 am

Post by Art »

Thanks I'll get back after I have a shot.
egorive
Posts: 24
Joined: Thu Jun 22, 2006 11:50 pm

same problem

Post by egorive »

Sorry but I have the same problem as metlhed, could any one tell us how is the right makefile?, I have used a tag remover just in case but still doesn't play my mp3 file. Thanks a lot!!
User avatar
dot_blank
Posts: 498
Joined: Wed Sep 28, 2005 8:47 am
Location: Brasil

Post by dot_blank »

is there anyway of decoding without using the vsh modules loaded
10011011 00101010 11010111 10001001 10111010
DookFook
Posts: 6
Joined: Wed Aug 01, 2007 11:08 pm

Post by DookFook »

Hello cooleyes,

the code you wrote is badass, however I get the same problem as other people. my memory stick lights go but I dont hear any audio. I opened the mp3 in a hex editor and it doesn't have a TAG header, just raw data. also, I dont know if my included libs are correct. is it possible to turn this app into a prx that would allow us to listen to mp3s while playing games etc?

thanks
egorive
Posts: 24
Joined: Thu Jun 22, 2006 11:50 pm

bad forms

Post by egorive »

DookFook with bad forms you don't go anywhere... "badass" ?, if other people didn't have the problem you must think the problem is in our makefile, includes,or libraries in pspsdk or something that we don't see. Please, someone that help us and show us the way to make this thing work.thanks (sorry about my English, I'm foreigner).
ufoz
Posts: 86
Joined: Thu Nov 10, 2005 2:36 am
Location: Tokyo
Contact:

Re: bad forms

Post by ufoz »

egorive wrote:DookFook with bad forms you don't go anywhere... "badass" ?, if other people didn't have the problem you must think the problem is in our makefile, includes,or libraries in pspsdk or something that we don't see. Please, someone that help us and show us the way to make this thing work.thanks (sorry about my English, I'm foreigner).
um

you are aware that "badass" is slang for "really awesome", right?
Xfacter
Posts: 9
Joined: Wed Feb 28, 2007 10:13 am

Post by Xfacter »

It isn't supposed to play anything. It only decodes it. Getting it to play is up to you.
Post Reply