Skip to content

Commit

Permalink
Pull in PCM samples via GH release
Browse files Browse the repository at this point in the history
  • Loading branch information
rhargreaves committed Jul 2, 2024
1 parent bb244c1 commit a0a8595
Show file tree
Hide file tree
Showing 8 changed files with 199 additions and 9 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ out/
.vscode/*.log
*.swp
res/*.s
src/boot/sega.s
src/boot/sega.s
res/samples/*
4 changes: 3 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ RUN apt-get -y update && \
cmake \
gdb \
gdbserver \
valgrind
valgrind \
wget \
unzip
WORKDIR /app
COPY tests/cmocka-*.tar.xz /app/tests/
COPY tests/Makefile /app/tests/Makefile
Expand Down
19 changes: 12 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,26 @@ all: release out/rom.s test
include $(SGDK)/makefile.gen

EXTRA_FLAGS:=-DMODULE_MEGAWIFI=1 \
-DBUILD='"$(BUILD)"' \
-Wl,--wrap=SYS_enableInts \
-Wl,--wrap=SYS_disableInts
-DBUILD='"$(BUILD)"' \
-Wl,--wrap=SYS_enableInts \
-Wl,--wrap=SYS_disableInts

ifeq ($(ROM_TYPE), MEGAWIFI)
EXTRA_FLAGS += -DMEGAWIFI -DENABLE_MEGAWIFI=1
LTO_FLAGS:=
LTO_FLAGS:=
else
LTO_FLAGS:=-flto
LTO_FLAGS:=-flto
endif

release: FLAGS= $(DEFAULT_FLAGS) -O3 -fuse-linker-plugin -fno-web -fno-gcse \
-fno-unit-at-a-time -fomit-frame-pointer $(LTO_FLAGS)
-fno-unit-at-a-time -fomit-frame-pointer $(LTO_FLAGS)
release: LIBMD= $(LIB)/libmd.a
release: pre-build out/rom.bin out/symbol.txt
release: res/samples pre-build out/rom.bin out/symbol.txt

res/samples:
wget "https://github.com/rhargreaves/mega-drive-pcm-samples/releases/download/v1/samples.zip" -O temp.zip
unzip temp.zip -d res/samples
rm temp.zip

out/rom.s: out/rom.out
m68k-elf-objdump -S $^ > $@
Expand Down
78 changes: 78 additions & 0 deletions res/samples.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
#ifndef _RES_SAMPLES_H_
#define _RES_SAMPLES_H_
#include <types.h>

extern const u8 BellRide[52736];
extern const u8 BellTree[103424];
extern const u8 BongoRim[5120];
extern const u8 Cabasa[2816];
extern const u8 Castanet[1024];
extern const u8 ChinaCrash[57344];
extern const u8 Clap[6144];
extern const u8 Clave[1792];
extern const u8 ClosedSlap[4608];
extern const u8 CowBell[6400];
extern const u8 Crsh1[136448];
extern const u8 Crsh2[91392];
extern const u8 FlrStudio[13568];
extern const u8 GuiroDown[3584];
extern const u8 GuiroUp[8192];
extern const u8 HiStudio[16128];
extern const u8 Hi_HatClosed[11520];
extern const u8 Hi_HatFoot[8192];
extern const u8 Hi_HatHalf_Open[50688];
extern const u8 HighAgogo[4608];
extern const u8 HighConga[11520];
extern const u8 HighQ[768];
extern const u8 HighTimbale[23808];
extern const u8 HighWoodblock[4864];
extern const u8 LongTaikoHit[30208];
extern const u8 LongWhistle[7168];
extern const u8 LowAgogo[6656];
extern const u8 LowBongo[6400];
extern const u8 LowFlrStudio[16128];
extern const u8 LowStudio[18688];
extern const u8 LowTimbale[25856];
extern const u8 LowTumba[10240];
extern const u8 LowWoodblock[5376];
extern const u8 Maracas[1792];
extern const u8 MdHiStudio[15360];
extern const u8 MdStudio[16384];
extern const u8 MetronomeBell[7168];
extern const u8 MetronomeClick[256];
extern const u8 Piccolo1_1[7168];
extern const u8 Piccolo1_2[7424];
extern const u8 QuicaHi[25088];
extern const u8 QuicaLow[29952];
extern const u8 Ride1[41472];
extern const u8 Ride2[47104];
extern const u8 RimTap[23296];
extern const u8 ScratchPull[2048];
extern const u8 ScratchPush[2048];
extern const u8 ShortTaikoHit[23040];
extern const u8 ShortWhistle[3072];
extern const u8 Slap[10496];
extern const u8 SleighBells[32256];
extern const u8 SmallShaker[11264];
extern const u8 Snr1_1[5632];
extern const u8 Snr1_2[5632];
extern const u8 Snr2_1[5632];
extern const u8 Snr2_2[6656];
extern const u8 Splash[43264];
extern const u8 SquareClick[512];
extern const u8 StdKick[4608];
extern const u8 StdKick1[4608];
extern const u8 StdKick2[5888];
extern const u8 StdKick3[6144];
extern const u8 StdKick4[4352];
extern const u8 StdKick5[3840];
extern const u8 StdKick6[7424];
extern const u8 StdKick7[6144];
extern const u8 StdSnr1[7680];
extern const u8 StdSnr2[8448];
extern const u8 Sticks[3072];
extern const u8 Tambourine[8448];
extern const u8 Triangle[26368];
extern const u8 VibraSlap[24320];

#endif // _RES_SAMPLES_H_
72 changes: 72 additions & 0 deletions res/samples.res
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
WAV BellRide "samples/BellRide.wav" 2
WAV BellTree "samples/BellTree.wav" 2
WAV BongoRim "samples/BongoRim.wav" 2
WAV Cabasa "samples/Cabasa.wav" 2
WAV Castanet "samples/Castanet.wav" 2
WAV ChinaCrash "samples/ChinaCrash.wav" 2
WAV Clap "samples/Clap.wav" 2
WAV Clave "samples/Clave.wav" 2
WAV ClosedSlap "samples/ClosedSlap.wav" 2
WAV CowBell "samples/CowBell.wav" 2
WAV Crsh1 "samples/Crsh1.wav" 2
WAV Crsh2 "samples/Crsh2.wav" 2
WAV FlrStudio "samples/FlrStudio.wav" 2
WAV GuiroDown "samples/GuiroDown.wav" 2
WAV GuiroUp "samples/GuiroUp.wav" 2
WAV HiStudio "samples/HiStudio.wav" 2
WAV Hi_HatClosed "samples/Hi_HatClosed.wav" 2
WAV Hi_HatFoot "samples/Hi_HatFoot.wav" 2
WAV Hi_HatHalf_Open "samples/Hi_HatHalf_Open.wav" 2
WAV HighAgogo "samples/HighAgogo.wav" 2
WAV HighConga "samples/HighConga.wav" 2
WAV HighQ "samples/HighQ.wav" 2
WAV HighTimbale "samples/HighTimbale.wav" 2
WAV HighWoodblock "samples/HighWoodblock.wav" 2
WAV LongTaikoHit "samples/LongTaikoHit.wav" 2
WAV LongWhistle "samples/LongWhistle.wav" 2
WAV LowAgogo "samples/LowAgogo.wav" 2
WAV LowBongo "samples/LowBongo.wav" 2
WAV LowFlrStudio "samples/LowFlrStudio.wav" 2
WAV LowStudio "samples/LowStudio.wav" 2
WAV LowTimbale "samples/LowTimbale.wav" 2
WAV LowTumba "samples/LowTumba.wav" 2
WAV LowWoodblock "samples/LowWoodblock.wav" 2
WAV Maracas "samples/Maracas.wav" 2
WAV MdHiStudio "samples/MdHiStudio.wav" 2
WAV MdStudio "samples/MdStudio.wav" 2
WAV MetronomeBell "samples/MetronomeBell.wav" 2
WAV MetronomeClick "samples/MetronomeClick.wav" 2
WAV Piccolo1_1 "samples/Piccolo1_1.wav" 2
WAV Piccolo1_2 "samples/Piccolo1_2.wav" 2
WAV QuicaHi "samples/QuicaHi.wav" 2
WAV QuicaLow "samples/QuicaLow.wav" 2
WAV Ride1 "samples/Ride1.wav" 2
WAV Ride2 "samples/Ride2.wav" 2
WAV RimTap "samples/RimTap.wav" 2
WAV ScratchPull "samples/ScratchPull.wav" 2
WAV ScratchPush "samples/ScratchPush.wav" 2
WAV ShortTaikoHit "samples/ShortTaikoHit.wav" 2
WAV ShortWhistle "samples/ShortWhistle.wav" 2
WAV Slap "samples/Slap.wav" 2
WAV SleighBells "samples/SleighBells.wav" 2
WAV SmallShaker "samples/SmallShaker.wav" 2
WAV Snr1_1 "samples/Snr1_1.wav" 2
WAV Snr1_2 "samples/Snr1_2.wav" 2
WAV Snr2_1 "samples/Snr2_1.wav" 2
WAV Snr2_2 "samples/Snr2_2.wav" 2
WAV Splash "samples/Splash.wav" 2
WAV SquareClick "samples/SquareClick.wav" 2
WAV StdKick "samples/StdKick.wav" 2
WAV StdKick1 "samples/StdKick1.wav" 2
WAV StdKick2 "samples/StdKick2.wav" 2
WAV StdKick3 "samples/StdKick3.wav" 2
WAV StdKick4 "samples/StdKick4.wav" 2
WAV StdKick5 "samples/StdKick5.wav" 2
WAV StdKick6 "samples/StdKick6.wav" 2
WAV StdKick7 "samples/StdKick7.wav" 2
WAV StdSnr1 "samples/StdSnr1.wav" 2
WAV StdSnr2 "samples/StdSnr2.wav" 2
WAV Sticks "samples/Sticks.wav" 2
WAV Tambourine "samples/Tambourine.wav" 2
WAV Triangle "samples/Triangle.wav" 2
WAV VibraSlap "samples/VibraSlap.wav" 2
19 changes: 19 additions & 0 deletions src/pcm_sample.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#include "pcm_sample.h"
#include "samples.h"
#include "sound.h"

static const PcmSample clap = { Clap, sizeof(Clap), SOUND_RATE_22050 };

const PcmSample* percussionPcmSample[128] = { &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap, &clap,
&clap, &clap };
12 changes: 12 additions & 0 deletions src/pcm_sample.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include "samples.h"
#include <types.h>

typedef struct PcmSample PcmSample;

struct PcmSample {
const u8* data;
u32 length;
u8 rate;
};

extern const PcmSample* percussionPcmSample[128];
1 change: 1 addition & 0 deletions tests/fake_res.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,4 @@ const Image img_megawifi_connected = {};
const Image img_megawifi_detected = {};
const Image img_megawifi_not_detected = {};
const Image img_megawifi_listening = {};
const u8 Clap[0] = {};

0 comments on commit a0a8595

Please sign in to comment.