04-03-2006, 01:00 PM
SPC Script
Plays SPC (Snes Format Sound)
HappyDragon
Apr 3 2006
I found this script a while ago , its not in the archives so i thout i'd post it here.
I did not make this script and also I don't know who did.
Script Notes
Plays SPC (Snes Format Sound)
HappyDragon
Apr 3 2006
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.
No support is given. If you are the owner of the thread, please contact administration.
I found this script a while ago , its not in the archives so i thout i'd post it here.
I did not make this script and also I don't know who did.
Code:
#================================================= =============================
# ■ Audio
#------------------------------------------------------------------------------
# Please note that this will play .SPC files ONLY IN GAME, not in the player.
#
#================================================= =============================
module Audio
#================================================= =========================
# ■ Winamp
#================================================= =========================
class Winamp
#------------------------------------------------------------------------
# ● initialize
#------------------------------------------------------------------------
def initialize
in_dll = 'DLL\in_snes.dll'
out_dll = 'DLL\out_wave.dll'
winamp_dll = 'DLL\Winamp.dll'
@ReadIni = Win32API.new('kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l')
@FindWindow = Win32API.new('user32', 'FindWindowA', %w(p p), 'l')
@Init_Winamp = Win32API.new(winamp_dll, 'Init_Winamp', %w(p p l), 'l')
@Winamp_Play = Win32API.new(winamp_dll, 'Winamp_Play', 'p', 'l')
@Winamp_Pause = Win32API.new(winamp_dll, 'Winamp_Pause', '', '')
@Winamp_Stop = Win32API.new(winamp_dll, 'Winamp_Stop', '', 'l')
@Winamp_IsPlaying = Win32API.new(winamp_dll, 'Winamp_IsPlaying', '', 'l')
@Winamp_GetFileInfo = Win32API.new(winamp_dll, 'Winamp_GetFileInfo', %w(p l), 'p')
@Winamp_SetVolume = Win32API.new(winamp_dll, 'Winamp_SetVolume', 'l', '')
@Winamp_IsPaused = Win32API.new(winamp_dll, 'Winamp_IsPaused', '', 'l')
@Init_Winamp.call(in_dll, out_dll, setup)
end
def play(file)
return @Winamp_Play.call(file)
end
def pause
@Winamp_Pause.call()
end
def stop
return @Winamp_Stop.call()
end
def is_playing?
return @Winamp_IsPlaying.call()
end
def get_file_info(playfile, length_adr)
return @Winamp_GetFileInfo.call(playfile, length_adr)
end
def set_volume(volume)
@Winamp_SetVolume.call(volume)
end
def is_paused?
return @Winamp_IsPaused.call()
end
def setup
game_name = 0.wow * 255
zeichen = @ReadIni.call('Game', 'Title', '', game_name, 255, ".\\Game.ini")
return @FindWindow.call('RGSS Player', game_name.slice!(0, zeichen))
end
end
#--------------------------------------------------------------------------
# ● define constant
#--------------------------------------------------------------------------
WINAMP = Winamp.new
#--------------------------------------------------------------------------
# ● Audio.spc_play(filename, [volume])
#--------------------------------------------------------------------------
def self.spc_play(filename, volume = 255)
for extension in ['.spc']
if FileTest.exist?(filename + extension)
filename = filename + extension
break
end
end
WINAMP.play(filename)
WINAMP.set_volume(volume)
end
#--------------------------------------------------------------------------
# ● Audio.spc_playing?
#--------------------------------------------------------------------------
def self.spc_playing?
if WINAMP.is_playing? == 0
return false
else
return true
end
end
#--------------------------------------------------------------------------
# ● Audio.spc_pause
#--------------------------------------------------------------------------
def self.spc_pause
WINAMP.pause
end
#--------------------------------------------------------------------------
# ● Audio.spc_paused?
#--------------------------------------------------------------------------
def self.spc_paused?
if WINAMP.is_paused? == 0
return false
else
return true
end
end
#--------------------------------------------------------------------------
# ● Audio.spc_stop
#--------------------------------------------------------------------------
def self.spc_stop
WINAMP.stop
end
end
#================================================= =============================
# ■ Game_System
#------------------------------------------------------------------------------
# Changes added to the bgm_play and bgm_stop functions.
#================================================= =============================
class Game_System
#--------------------------------------------------------------------------
# ● Play Back Ground Music
#--------------------------------------------------------------------------
def bgm_play(bgm)
@playing_bgm = bgm
if bgm != nil and bgm.name != ""
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)
Audio.spc_play("Audio/BGM/" + bgm.name, bgm.volume)
else
Audio.bgm_stop
Audio.spc_stop
end
Graphics.frame_reset
end
#--------------------------------------------------------------------------
# ● Stop playing BGM
#--------------------------------------------------------------------------
def bgm_stop
Audio.bgm_stop
Audio.spc_stop
end
end
Script Notes