From d57a34ae4121d6bd060276ab51a0653f73344ef1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com>
Date: Sun, 23 Jul 2023 11:25:27 +0100
Subject: [PATCH] chore: added individual audio files

---
 res/roms/test/blargg/dmg_sound/01-registers.gb  | Bin 0 -> 32768 bytes
 res/roms/test/blargg/dmg_sound/02-len ctr.gb    | Bin 0 -> 32768 bytes
 res/roms/test/blargg/dmg_sound/03-trigger.gb    | Bin 0 -> 32768 bytes
 res/roms/test/blargg/dmg_sound/04-sweep.gb      | Bin 0 -> 32768 bytes
 .../test/blargg/dmg_sound/05-sweep details.gb   | Bin 0 -> 32768 bytes
 .../blargg/dmg_sound/06-overflow on trigger.gb  | Bin 0 -> 32768 bytes
 .../dmg_sound/07-len sweep period sync.gb       | Bin 0 -> 32768 bytes
 .../blargg/dmg_sound/08-len ctr during power.gb | Bin 0 -> 32768 bytes
 .../blargg/dmg_sound/09-wave read while on.gb   | Bin 0 -> 32768 bytes
 .../blargg/dmg_sound/09-wave read while on.sav  | Bin 0 -> 8192 bytes
 .../dmg_sound/10-wave trigger while on.gb       | Bin 0 -> 32768 bytes
 .../blargg/dmg_sound/11-regs after power.gb     | Bin 0 -> 32768 bytes
 .../blargg/dmg_sound/12-wave write while on.gb  | Bin 0 -> 32768 bytes
 13 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 res/roms/test/blargg/dmg_sound/01-registers.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/02-len ctr.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/03-trigger.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/04-sweep.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/05-sweep details.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/06-overflow on trigger.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/07-len sweep period sync.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/08-len ctr during power.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/09-wave read while on.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/09-wave read while on.sav
 create mode 100644 res/roms/test/blargg/dmg_sound/10-wave trigger while on.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/11-regs after power.gb
 create mode 100644 res/roms/test/blargg/dmg_sound/12-wave write while on.gb

diff --git a/res/roms/test/blargg/dmg_sound/01-registers.gb b/res/roms/test/blargg/dmg_sound/01-registers.gb
new file mode 100644
index 0000000000000000000000000000000000000000..c1fa6c5d2c003d96130d6cc426d75b9b99f4ba6e
GIT binary patch
literal 32768
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

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/02-len ctr.gb b/res/roms/test/blargg/dmg_sound/02-len ctr.gb
new file mode 100644
index 0000000000000000000000000000000000000000..d940c7ae79e64d6cfa81b6a335546a4f84c1355d
GIT binary patch
literal 32768
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
R00|%gB!C2v!2c?Ne*+rU+>QVM

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/03-trigger.gb b/res/roms/test/blargg/dmg_sound/03-trigger.gb
new file mode 100644
index 0000000000000000000000000000000000000000..1b0f03213d12cb67c481134896b04f7739472e41
GIT binary patch
literal 32768
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
DB96Pi

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/04-sweep.gb b/res/roms/test/blargg/dmg_sound/04-sweep.gb
new file mode 100644
index 0000000000000000000000000000000000000000..746b78aac81c962f47635ca4364219eab42cf879
GIT binary patch
literal 32768
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
TKmter2_OL^fCP}h|3=`ydLeI5

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/05-sweep details.gb b/res/roms/test/blargg/dmg_sound/05-sweep details.gb
new file mode 100644
index 0000000000000000000000000000000000000000..55351a3519b7017f14f1cec0f7f05c7b795b39f9
GIT binary patch
literal 32768
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
U2_OL^fCP{L5<mh-;A=?WzZHv*ga7~l

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/06-overflow on trigger.gb b/res/roms/test/blargg/dmg_sound/06-overflow on trigger.gb
new file mode 100644
index 0000000000000000000000000000000000000000..d3fbe3bce789374fd45d7e9b9e7cd1c69f0c65f3
GIT binary patch
literal 32768
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

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/07-len sweep period sync.gb b/res/roms/test/blargg/dmg_sound/07-len sweep period sync.gb
new file mode 100644
index 0000000000000000000000000000000000000000..3da3bd79929290841126ccb41b17f7031316dfb7
GIT binary patch
literal 32768
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

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/08-len ctr during power.gb b/res/roms/test/blargg/dmg_sound/08-len ctr during power.gb
new file mode 100644
index 0000000000000000000000000000000000000000..c72bbf2e95c9694a17d018da93edc6cc6249d6d2
GIT binary patch
literal 32768
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
Y5<mh-00|%gB!C2v01`j~Uo-;$0Ttppr2qf`

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/09-wave read while on.gb b/res/roms/test/blargg/dmg_sound/09-wave read while on.gb
new file mode 100644
index 0000000000000000000000000000000000000000..b4a79ad4ce3467d4b545076203c563dedca23de3
GIT binary patch
literal 32768
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

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/09-wave read while on.sav b/res/roms/test/blargg/dmg_sound/09-wave read while on.sav
new file mode 100644
index 0000000000000000000000000000000000000000..ab82504a3532d5cf9a5c1c1989eda46d9a60c966
GIT binary patch
literal 8192
zcmeIuOA5j;6h`5Wvx;m$==(A3D`U41Xh1;}EVSElMQ%lNxls2YCxo9fOupp(@@aS4
z{TA#q_{Hv*>n+&F-5BR=ylE<%WxvgHY2Bib)-6kE-Kvt-t!ruBrjgcdTWQ^{lh*Bf
zY29Iv)*VM_-D#56oo8v?7{}F@AMZD3zpi01iE%!DF~*0300IagfB*srAb<b@2q1s}
b0tg_000IagfB*srAb<b@2q1vKp9p*bFsUEs

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/10-wave trigger while on.gb b/res/roms/test/blargg/dmg_sound/10-wave trigger while on.gb
new file mode 100644
index 0000000000000000000000000000000000000000..a7c7ddc03b556fa3e70e82218ab34398331fe5ea
GIT binary patch
literal 32768
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
Fe*v~m7ta6y

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/11-regs after power.gb b/res/roms/test/blargg/dmg_sound/11-regs after power.gb
new file mode 100644
index 0000000000000000000000000000000000000000..773e01e8766c24ad64d30e2ced752ebd4c6de4af
GIT binary patch
literal 32768
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
NkN^@u0{^=N{s~5uV)6h0

literal 0
HcmV?d00001

diff --git a/res/roms/test/blargg/dmg_sound/12-wave write while on.gb b/res/roms/test/blargg/dmg_sound/12-wave write while on.gb
new file mode 100644
index 0000000000000000000000000000000000000000..e0119b92c7f11928ec422906e5de3b76c8b0bb34
GIT binary patch
literal 32768
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
J0{=UKe*wrB9xea?

literal 0
HcmV?d00001

-- 
GitLab