├── Backgrounds ├── stars.png ├── big checkers.png └── README.md ├── Music ├── SFX │ ├── Clock.mod │ ├── Clock2.mod │ ├── EuroCop.mod │ ├── Powerup.mod │ ├── nuh-uh.mod │ ├── Powerup2.mod │ ├── Powerup3.mod │ ├── smb3okay.mod │ ├── Alarm Clock.mod │ ├── Alarm System.mod │ ├── Explosion1.mod │ ├── Nokia Tune.mod │ ├── Phone Ring.mod │ ├── Pickup_Coin.mod │ ├── Squeal Door.mod │ ├── racecar zoom.mod │ ├── Missile Alert.mod │ ├── fast wind gust.mod │ ├── menu no thanks.mod │ ├── Vibration Alarm.mod │ ├── harsh wind gust.mod │ ├── old telephone 1.mod │ ├── odd open inventory.mod │ └── Readme.md ├── Action │ ├── Boss fight1.mod │ ├── Boss fight2.mod │ ├── Compression.mod │ ├── Sugar Craze.mod │ ├── Joyous Takeoff.mod │ ├── Sneaking Around.mod │ ├── Tape It Together.mod │ ├── Tense Boss Battle.mod │ ├── Free OST 1 - Fighting.mod │ ├── Dancing and Infiltrating.mod │ ├── Free OST 1 - Backstreets.mod │ ├── Serious Ping Pong Matches.mod │ └── Monty's Overheating Spaceship.mod ├── Jingles │ ├── Slow death.mod │ ├── Awkward Death.mod │ ├── Battle Motif.mod │ ├── Pitfall Death.mod │ ├── Radical Intro.mod │ ├── Silly Death.mod │ ├── The Sad Truth.mod │ ├── Victory Lap.mod │ ├── Falling Asleep.mod │ ├── Game Over Loop.mod │ ├── Radical Victory.mod │ ├── Rascal's Ditty.mod │ ├── Victory Fanfare.mod │ ├── Battle Encounter.mod │ ├── Excited Suspense.mod │ ├── Swing into Victory.mod │ ├── Out of Energy Game Over.mod │ ├── Short SML2-Style Jingle.mod │ ├── Nursery Rhyme with pauses.mod │ └── Short Lullaby with Key Modulation.mod ├── Drumbeats │ ├── Boots Cats.mod │ ├── Kick Stutter.mod │ ├── Kick Kick Snare.mod │ ├── Supa-Hip Breakbeat.mod │ ├── Breakbeat with Hats.mod │ ├── Duck Tales Drumbeat.mod │ ├── Kick Kick Kick Crash.mod │ ├── Upbeat Metal Drumming.mod │ ├── Backbeat Metal Drumming.mod │ ├── Halftime Metal Drumming.mod │ └── Messy 90s Uptempo Hiphop.mod ├── Overworld │ ├── Darkstone.mod │ ├── FridgeMusic.mod │ ├── In the Town.mod │ ├── ParkMusic.mod │ ├── Great Melody 01.mod │ ├── Great Melody02.mod │ ├── Little Tune 11.mod │ ├── Villains of Hiphop.mod │ ├── parkmusic preview.mp3 │ ├── Peppy Regal Overworld.mod │ ├── The Gang's All Here.mod │ └── fridgemusic preview.mp3 ├── template.xm │ ├── template.xm │ └── README.md ├── Exploration │ ├── Determined.mod │ ├── Peppy Pop Song.mod │ ├── Scrolling Text.mod │ └── Twilight Drive.mod ├── Spooky │ ├── Detective Intro.mod │ └── Short Hauntings.mod ├── Menu Themes │ ├── MBR Settings.mod │ ├── Free OST 1 - Fanfare.mod │ ├── Free OST 1 - Ending Theme.mod │ └── Free OST 1 - Character Select.mod ├── National Anthems │ ├── Italy Intro.mod │ ├── France Intro.mod │ ├── Germany Intro.mod │ ├── United Kingdom Intro.mod │ └── United States of America Intro.mod └── Readme.md ├── Fonts ├── default-ascii.png ├── Rips │ ├── Spongebob.jpeg │ ├── Zero Wing.png │ ├── Multiboot Menu (GBA).png │ ├── Love Story and Theremin.png │ ├── Trolls on Treasure Island.png │ ├── Kirby's Adventure Ability help.png │ ├── Final Fantasy Legends (Modified).png │ ├── Kirby's Adventure Ability help Dark.png │ └── Final Fantasy Legends Dark (Modified).png ├── Thin Fonts │ ├── Gothic.png │ └── thinrpg.png ├── Specialty │ ├── ascii-to-hex.png │ └── ascii-with-d20.png ├── Thick Fonts │ ├── ascii_thick.png │ ├── ascii_thick_italic.png │ ├── ascii_thick_inverted.png │ └── ascii_thick_italic_inverted.png └── README.md ├── Sprites ├── Static │ ├── Log_1.png │ ├── Portrait_girl_1.png │ ├── README.md │ └── Cats │ │ ├── cat_calico_static.png │ │ ├── cat_tuxedo_static.png │ │ ├── cat_white_static.png │ │ ├── cat_fat_tuxedo_static.png │ │ ├── cat_grey_tuxedo_static.png │ │ ├── cat_short_black_static.png │ │ ├── cat_short_tuxedo_static.png │ │ └── README.md ├── Animated │ ├── People │ │ ├── 01a.png │ │ ├── 01b.png │ │ ├── 02a.png │ │ ├── 02b.png │ │ ├── 03a.png │ │ ├── 03b.png │ │ ├── 04a.png │ │ ├── 04b.png │ │ ├── 05a.png │ │ ├── 05b.png │ │ ├── 06a.png │ │ ├── 06b.png │ │ ├── 07a.png │ │ ├── 07b.png │ │ └── ball.png │ ├── Animals │ │ ├── Bat.png │ │ ├── Cat.png │ │ ├── Deer.png │ │ ├── Dog.png │ │ ├── Fox.png │ │ ├── Goat.png │ │ ├── Lion.png │ │ ├── Mole.png │ │ ├── Rat.png │ │ ├── Wolf.png │ │ ├── Baboon.png │ │ ├── Cheetah.png │ │ ├── Coyote.png │ │ ├── Hippo.png │ │ ├── Monkey.png │ │ ├── Mouse.png │ │ ├── Raccoon.png │ │ ├── Seagull.png │ │ ├── Skunk.png │ │ ├── Snake.png │ │ ├── Trout.png │ │ ├── Walrus.png │ │ ├── Weasel.png │ │ ├── Elephant.png │ │ ├── Kangaroo.png │ │ └── Chimpanzee.png │ ├── Dice │ │ ├── Dice01.png │ │ ├── Dice010.png │ │ ├── Dice013.png │ │ ├── Dice02.png │ │ ├── Dice03.png │ │ ├── Dice04.png │ │ ├── Dice05.png │ │ ├── Dice06.png │ │ ├── Dice07.png │ │ ├── Dice08.png │ │ ├── Dice09.png │ │ ├── Dice11.png │ │ ├── Dice12.png │ │ ├── Dice14.png │ │ ├── Dice15.png │ │ ├── Dice16.png │ │ ├── Dice17.png │ │ ├── Dice18.png │ │ ├── Dice19.png │ │ ├── Dice20.png │ │ ├── Dice21.png │ │ └── d20_anim.png │ ├── Cards │ │ ├── Cards01.png │ │ ├── Cards02.png │ │ └── Cards03.png │ ├── Crosshairs │ │ ├── 01a.png │ │ ├── 01b.png │ │ ├── 02a.png │ │ ├── 02b.png │ │ ├── 03a.png │ │ ├── 03b.png │ │ ├── 04a.png │ │ ├── 04b.png │ │ ├── 05a.png │ │ ├── 05b.png │ │ ├── 06a.png │ │ ├── 06b.png │ │ └── selection_box.png │ ├── Decorations │ │ ├── Fairy_wing_l.png │ │ ├── Fairy_wing_r.png │ │ └── music_notes.png │ └── README.md ├── Emotes │ ├── grams-emotes.png │ └── default emotes.png ├── Frames │ ├── SkyrimFrame.png │ ├── simple_frame.png │ └── default frame.png └── Cursors │ ├── SkyrimCursor.png │ └── default cursor.png ├── UI ├── Emotes │ ├── grams-emotes.png │ └── default emotes.png ├── Frames │ ├── SkyrimFrame.png │ ├── simple_frame.png │ └── default frame.png ├── Cursors │ ├── SkyrimCursor.png │ └── default cursor.png └── README.md ├── titlecard_july11_2019.png ├── Tilesets ├── Free Furniture.png ├── Old Halls by AFI.png └── Credits.md ├── Scripts └── Camera │ ├── break camera from player.txt │ └── Screenscroll │ ├── screenscroll_scene_init.txt │ └── screenscroll_trigger.txt ├── LICENSE ├── CONTRIBUTING.md ├── README.md ├── Engine └── GBT Player Banks │ ├── README.md │ └── Ember Triangle.s └── COMMUNITY_LINKS.md /Backgrounds/stars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Backgrounds/stars.png -------------------------------------------------------------------------------- /Music/SFX/Clock.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Clock.mod -------------------------------------------------------------------------------- /Music/SFX/Clock2.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Clock2.mod -------------------------------------------------------------------------------- /Music/SFX/EuroCop.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/EuroCop.mod -------------------------------------------------------------------------------- /Music/SFX/Powerup.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Powerup.mod -------------------------------------------------------------------------------- /Music/SFX/nuh-uh.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/nuh-uh.mod -------------------------------------------------------------------------------- /Fonts/default-ascii.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/default-ascii.png -------------------------------------------------------------------------------- /Music/SFX/Powerup2.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Powerup2.mod -------------------------------------------------------------------------------- /Music/SFX/Powerup3.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Powerup3.mod -------------------------------------------------------------------------------- /Music/SFX/smb3okay.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/smb3okay.mod -------------------------------------------------------------------------------- /Fonts/Rips/Spongebob.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Spongebob.jpeg -------------------------------------------------------------------------------- /Fonts/Rips/Zero Wing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Zero Wing.png -------------------------------------------------------------------------------- /Music/SFX/Alarm Clock.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Alarm Clock.mod -------------------------------------------------------------------------------- /Music/SFX/Alarm System.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Alarm System.mod -------------------------------------------------------------------------------- /Music/SFX/Explosion1.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Explosion1.mod -------------------------------------------------------------------------------- /Music/SFX/Nokia Tune.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Nokia Tune.mod -------------------------------------------------------------------------------- /Music/SFX/Phone Ring.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Phone Ring.mod -------------------------------------------------------------------------------- /Music/SFX/Pickup_Coin.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Pickup_Coin.mod -------------------------------------------------------------------------------- /Music/SFX/Squeal Door.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Squeal Door.mod -------------------------------------------------------------------------------- /Music/SFX/racecar zoom.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/racecar zoom.mod -------------------------------------------------------------------------------- /Sprites/Static/Log_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Log_1.png -------------------------------------------------------------------------------- /UI/Emotes/grams-emotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/UI/Emotes/grams-emotes.png -------------------------------------------------------------------------------- /UI/Frames/SkyrimFrame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/UI/Frames/SkyrimFrame.png -------------------------------------------------------------------------------- /UI/Frames/simple_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/UI/Frames/simple_frame.png -------------------------------------------------------------------------------- /titlecard_july11_2019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/titlecard_july11_2019.png -------------------------------------------------------------------------------- /Backgrounds/big checkers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Backgrounds/big checkers.png -------------------------------------------------------------------------------- /Fonts/Thin Fonts/Gothic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Thin Fonts/Gothic.png -------------------------------------------------------------------------------- /Fonts/Thin Fonts/thinrpg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Thin Fonts/thinrpg.png -------------------------------------------------------------------------------- /Music/Action/Boss fight1.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Boss fight1.mod -------------------------------------------------------------------------------- /Music/Action/Boss fight2.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Boss fight2.mod -------------------------------------------------------------------------------- /Music/Action/Compression.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Compression.mod -------------------------------------------------------------------------------- /Music/Action/Sugar Craze.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Sugar Craze.mod -------------------------------------------------------------------------------- /Music/Jingles/Slow death.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Slow death.mod -------------------------------------------------------------------------------- /Music/SFX/Missile Alert.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Missile Alert.mod -------------------------------------------------------------------------------- /Music/SFX/fast wind gust.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/fast wind gust.mod -------------------------------------------------------------------------------- /Music/SFX/menu no thanks.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/menu no thanks.mod -------------------------------------------------------------------------------- /Tilesets/Free Furniture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Tilesets/Free Furniture.png -------------------------------------------------------------------------------- /UI/Cursors/SkyrimCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/UI/Cursors/SkyrimCursor.png -------------------------------------------------------------------------------- /UI/Emotes/default emotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/UI/Emotes/default emotes.png -------------------------------------------------------------------------------- /UI/Frames/default frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/UI/Frames/default frame.png -------------------------------------------------------------------------------- /Music/Action/Joyous Takeoff.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Joyous Takeoff.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Boots Cats.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Boots Cats.mod -------------------------------------------------------------------------------- /Music/Jingles/Awkward Death.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Awkward Death.mod -------------------------------------------------------------------------------- /Music/Jingles/Battle Motif.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Battle Motif.mod -------------------------------------------------------------------------------- /Music/Jingles/Pitfall Death.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Pitfall Death.mod -------------------------------------------------------------------------------- /Music/Jingles/Radical Intro.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Radical Intro.mod -------------------------------------------------------------------------------- /Music/Jingles/Silly Death.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Silly Death.mod -------------------------------------------------------------------------------- /Music/Jingles/The Sad Truth.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/The Sad Truth.mod -------------------------------------------------------------------------------- /Music/Jingles/Victory Lap.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Victory Lap.mod -------------------------------------------------------------------------------- /Music/Overworld/Darkstone.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/Darkstone.mod -------------------------------------------------------------------------------- /Music/Overworld/FridgeMusic.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/FridgeMusic.mod -------------------------------------------------------------------------------- /Music/Overworld/In the Town.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/In the Town.mod -------------------------------------------------------------------------------- /Music/Overworld/ParkMusic.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/ParkMusic.mod -------------------------------------------------------------------------------- /Music/SFX/Vibration Alarm.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/Vibration Alarm.mod -------------------------------------------------------------------------------- /Music/SFX/harsh wind gust.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/harsh wind gust.mod -------------------------------------------------------------------------------- /Music/SFX/old telephone 1.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/old telephone 1.mod -------------------------------------------------------------------------------- /Music/template.xm/template.xm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/template.xm/template.xm -------------------------------------------------------------------------------- /Sprites/Animated/People/01a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/01a.png -------------------------------------------------------------------------------- /Sprites/Animated/People/01b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/01b.png -------------------------------------------------------------------------------- /Sprites/Animated/People/02a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/02a.png -------------------------------------------------------------------------------- /Sprites/Animated/People/02b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/02b.png -------------------------------------------------------------------------------- /Sprites/Animated/People/03a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/03a.png -------------------------------------------------------------------------------- /Sprites/Animated/People/03b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/03b.png -------------------------------------------------------------------------------- /Sprites/Animated/People/04a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/04a.png -------------------------------------------------------------------------------- /Sprites/Animated/People/04b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/04b.png -------------------------------------------------------------------------------- /Sprites/Animated/People/05a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/05a.png -------------------------------------------------------------------------------- /Sprites/Animated/People/05b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/05b.png -------------------------------------------------------------------------------- /Sprites/Animated/People/06a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/06a.png -------------------------------------------------------------------------------- /Sprites/Animated/People/06b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/06b.png -------------------------------------------------------------------------------- /Sprites/Animated/People/07a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/07a.png -------------------------------------------------------------------------------- /Sprites/Animated/People/07b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/07b.png -------------------------------------------------------------------------------- /Sprites/Emotes/grams-emotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Emotes/grams-emotes.png -------------------------------------------------------------------------------- /Sprites/Frames/SkyrimFrame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Frames/SkyrimFrame.png -------------------------------------------------------------------------------- /Sprites/Frames/simple_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Frames/simple_frame.png -------------------------------------------------------------------------------- /Tilesets/Old Halls by AFI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Tilesets/Old Halls by AFI.png -------------------------------------------------------------------------------- /UI/Cursors/default cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/UI/Cursors/default cursor.png -------------------------------------------------------------------------------- /Fonts/Specialty/ascii-to-hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Specialty/ascii-to-hex.png -------------------------------------------------------------------------------- /Fonts/Thick Fonts/ascii_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Thick Fonts/ascii_thick.png -------------------------------------------------------------------------------- /Music/Action/Sneaking Around.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Sneaking Around.mod -------------------------------------------------------------------------------- /Music/Action/Tape It Together.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Tape It Together.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Kick Stutter.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Kick Stutter.mod -------------------------------------------------------------------------------- /Music/Exploration/Determined.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Exploration/Determined.mod -------------------------------------------------------------------------------- /Music/Jingles/Falling Asleep.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Falling Asleep.mod -------------------------------------------------------------------------------- /Music/Jingles/Game Over Loop.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Game Over Loop.mod -------------------------------------------------------------------------------- /Music/Jingles/Radical Victory.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Radical Victory.mod -------------------------------------------------------------------------------- /Music/Jingles/Rascal's Ditty.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Rascal's Ditty.mod -------------------------------------------------------------------------------- /Music/Jingles/Victory Fanfare.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Victory Fanfare.mod -------------------------------------------------------------------------------- /Music/SFX/odd open inventory.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/SFX/odd open inventory.mod -------------------------------------------------------------------------------- /Music/Spooky/Detective Intro.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Spooky/Detective Intro.mod -------------------------------------------------------------------------------- /Music/Spooky/Short Hauntings.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Spooky/Short Hauntings.mod -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Bat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Bat.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Cat.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Deer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Deer.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Dog.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Fox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Fox.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Goat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Goat.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Lion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Lion.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Mole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Mole.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Rat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Rat.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Wolf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Wolf.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice01.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice010.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice013.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice02.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice03.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice04.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice05.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice06.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice07.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice08.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice09.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice11.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice12.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice14.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice15.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice16.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice17.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice18.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice19.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice20.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/Dice21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/Dice21.png -------------------------------------------------------------------------------- /Sprites/Animated/People/ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/People/ball.png -------------------------------------------------------------------------------- /Sprites/Cursors/SkyrimCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Cursors/SkyrimCursor.png -------------------------------------------------------------------------------- /Sprites/Emotes/default emotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Emotes/default emotes.png -------------------------------------------------------------------------------- /Sprites/Frames/default frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Frames/default frame.png -------------------------------------------------------------------------------- /Fonts/Rips/Multiboot Menu (GBA).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Multiboot Menu (GBA).png -------------------------------------------------------------------------------- /Fonts/Specialty/ascii-with-d20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Specialty/ascii-with-d20.png -------------------------------------------------------------------------------- /Music/Action/Tense Boss Battle.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Tense Boss Battle.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Kick Kick Snare.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Kick Kick Snare.mod -------------------------------------------------------------------------------- /Music/Exploration/Peppy Pop Song.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Exploration/Peppy Pop Song.mod -------------------------------------------------------------------------------- /Music/Exploration/Scrolling Text.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Exploration/Scrolling Text.mod -------------------------------------------------------------------------------- /Music/Exploration/Twilight Drive.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Exploration/Twilight Drive.mod -------------------------------------------------------------------------------- /Music/Jingles/Battle Encounter.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Battle Encounter.mod -------------------------------------------------------------------------------- /Music/Jingles/Excited Suspense.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Excited Suspense.mod -------------------------------------------------------------------------------- /Music/Jingles/Swing into Victory.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Swing into Victory.mod -------------------------------------------------------------------------------- /Music/Menu Themes/MBR Settings.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Menu Themes/MBR Settings.mod -------------------------------------------------------------------------------- /Music/Overworld/Great Melody 01.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/Great Melody 01.mod -------------------------------------------------------------------------------- /Music/Overworld/Great Melody02.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/Great Melody02.mod -------------------------------------------------------------------------------- /Music/Overworld/Little Tune 11.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/Little Tune 11.mod -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Baboon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Baboon.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Cheetah.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Cheetah.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Coyote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Coyote.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Hippo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Hippo.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Monkey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Monkey.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Mouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Mouse.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Raccoon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Raccoon.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Seagull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Seagull.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Skunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Skunk.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Snake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Snake.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Trout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Trout.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Walrus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Walrus.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Weasel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Weasel.png -------------------------------------------------------------------------------- /Sprites/Animated/Cards/Cards01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Cards/Cards01.png -------------------------------------------------------------------------------- /Sprites/Animated/Cards/Cards02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Cards/Cards02.png -------------------------------------------------------------------------------- /Sprites/Animated/Cards/Cards03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Cards/Cards03.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/01a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/01a.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/01b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/01b.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/02a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/02a.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/02b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/02b.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/03a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/03a.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/03b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/03b.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/04a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/04a.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/04b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/04b.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/05a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/05a.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/05b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/05b.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/06a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/06a.png -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/06b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/06b.png -------------------------------------------------------------------------------- /Sprites/Animated/Dice/d20_anim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Dice/d20_anim.png -------------------------------------------------------------------------------- /Sprites/Cursors/default cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Cursors/default cursor.png -------------------------------------------------------------------------------- /Sprites/Static/Portrait_girl_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Portrait_girl_1.png -------------------------------------------------------------------------------- /Sprites/Static/README.md: -------------------------------------------------------------------------------- 1 | # Static Sprites 2 | 3 | By Kalyen 4 | - `Log_1.png` 5 | - `Portrait_girl_1.png`: Portrait for use in dialog boxes. 6 | -------------------------------------------------------------------------------- /Fonts/Rips/Love Story and Theremin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Love Story and Theremin.png -------------------------------------------------------------------------------- /Music/Action/Free OST 1 - Fighting.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Free OST 1 - Fighting.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Supa-Hip Breakbeat.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Supa-Hip Breakbeat.mod -------------------------------------------------------------------------------- /Music/National Anthems/Italy Intro.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/National Anthems/Italy Intro.mod -------------------------------------------------------------------------------- /Music/Overworld/Villains of Hiphop.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/Villains of Hiphop.mod -------------------------------------------------------------------------------- /Music/Overworld/parkmusic preview.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/parkmusic preview.mp3 -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Elephant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Elephant.png -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Kangaroo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Kangaroo.png -------------------------------------------------------------------------------- /Backgrounds/README.md: -------------------------------------------------------------------------------- 1 | # Credits: 2 | 3 | **Chris Maltby:** 4 | 5 | - `stars.png` 6 | 7 | **Ember/DeerTears:** 8 | 9 | - `big_checkers.png` 10 | -------------------------------------------------------------------------------- /Fonts/Rips/Trolls on Treasure Island.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Trolls on Treasure Island.png -------------------------------------------------------------------------------- /Fonts/Thick Fonts/ascii_thick_italic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Thick Fonts/ascii_thick_italic.png -------------------------------------------------------------------------------- /Music/Action/Dancing and Infiltrating.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Dancing and Infiltrating.mod -------------------------------------------------------------------------------- /Music/Action/Free OST 1 - Backstreets.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Free OST 1 - Backstreets.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Breakbeat with Hats.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Breakbeat with Hats.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Duck Tales Drumbeat.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Duck Tales Drumbeat.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Kick Kick Kick Crash.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Kick Kick Kick Crash.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Upbeat Metal Drumming.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Upbeat Metal Drumming.mod -------------------------------------------------------------------------------- /Music/Jingles/Out of Energy Game Over.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Out of Energy Game Over.mod -------------------------------------------------------------------------------- /Music/Jingles/Short SML2-Style Jingle.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Short SML2-Style Jingle.mod -------------------------------------------------------------------------------- /Music/National Anthems/France Intro.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/National Anthems/France Intro.mod -------------------------------------------------------------------------------- /Music/National Anthems/Germany Intro.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/National Anthems/Germany Intro.mod -------------------------------------------------------------------------------- /Music/Overworld/Peppy Regal Overworld.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/Peppy Regal Overworld.mod -------------------------------------------------------------------------------- /Music/Overworld/The Gang's All Here.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/The Gang's All Here.mod -------------------------------------------------------------------------------- /Music/Overworld/fridgemusic preview.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Overworld/fridgemusic preview.mp3 -------------------------------------------------------------------------------- /Sprites/Animated/Animals/Chimpanzee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Animals/Chimpanzee.png -------------------------------------------------------------------------------- /Sprites/Static/Cats/cat_calico_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Cats/cat_calico_static.png -------------------------------------------------------------------------------- /Sprites/Static/Cats/cat_tuxedo_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Cats/cat_tuxedo_static.png -------------------------------------------------------------------------------- /Sprites/Static/Cats/cat_white_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Cats/cat_white_static.png -------------------------------------------------------------------------------- /Fonts/Thick Fonts/ascii_thick_inverted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Thick Fonts/ascii_thick_inverted.png -------------------------------------------------------------------------------- /Music/Action/Serious Ping Pong Matches.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Serious Ping Pong Matches.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Backbeat Metal Drumming.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Backbeat Metal Drumming.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Halftime Metal Drumming.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Halftime Metal Drumming.mod -------------------------------------------------------------------------------- /Music/Jingles/Nursery Rhyme with pauses.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Nursery Rhyme with pauses.mod -------------------------------------------------------------------------------- /Music/Menu Themes/Free OST 1 - Fanfare.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Menu Themes/Free OST 1 - Fanfare.mod -------------------------------------------------------------------------------- /Fonts/Rips/Kirby's Adventure Ability help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Kirby's Adventure Ability help.png -------------------------------------------------------------------------------- /Music/Action/Monty's Overheating Spaceship.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Action/Monty's Overheating Spaceship.mod -------------------------------------------------------------------------------- /Music/Drumbeats/Messy 90s Uptempo Hiphop.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Drumbeats/Messy 90s Uptempo Hiphop.mod -------------------------------------------------------------------------------- /Sprites/Animated/Crosshairs/selection_box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Crosshairs/selection_box.png -------------------------------------------------------------------------------- /Sprites/Animated/Decorations/Fairy_wing_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Decorations/Fairy_wing_l.png -------------------------------------------------------------------------------- /Sprites/Animated/Decorations/Fairy_wing_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Decorations/Fairy_wing_r.png -------------------------------------------------------------------------------- /Sprites/Animated/Decorations/music_notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Animated/Decorations/music_notes.png -------------------------------------------------------------------------------- /Sprites/Static/Cats/cat_fat_tuxedo_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Cats/cat_fat_tuxedo_static.png -------------------------------------------------------------------------------- /Sprites/Static/Cats/cat_grey_tuxedo_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Cats/cat_grey_tuxedo_static.png -------------------------------------------------------------------------------- /Sprites/Static/Cats/cat_short_black_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Cats/cat_short_black_static.png -------------------------------------------------------------------------------- /Fonts/Rips/Final Fantasy Legends (Modified).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Final Fantasy Legends (Modified).png -------------------------------------------------------------------------------- /Music/Menu Themes/Free OST 1 - Ending Theme.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Menu Themes/Free OST 1 - Ending Theme.mod -------------------------------------------------------------------------------- /Music/National Anthems/United Kingdom Intro.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/National Anthems/United Kingdom Intro.mod -------------------------------------------------------------------------------- /Sprites/Static/Cats/cat_short_tuxedo_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Sprites/Static/Cats/cat_short_tuxedo_static.png -------------------------------------------------------------------------------- /Fonts/Rips/Kirby's Adventure Ability help Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Kirby's Adventure Ability help Dark.png -------------------------------------------------------------------------------- /Fonts/Thick Fonts/ascii_thick_italic_inverted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Thick Fonts/ascii_thick_italic_inverted.png -------------------------------------------------------------------------------- /Music/Jingles/Short Lullaby with Key Modulation.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Jingles/Short Lullaby with Key Modulation.mod -------------------------------------------------------------------------------- /Music/Menu Themes/Free OST 1 - Character Select.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/Menu Themes/Free OST 1 - Character Select.mod -------------------------------------------------------------------------------- /Fonts/Rips/Final Fantasy Legends Dark (Modified).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Fonts/Rips/Final Fantasy Legends Dark (Modified).png -------------------------------------------------------------------------------- /Music/National Anthems/United States of America Intro.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Welding-Torch/GB-Studio-Community-Assets/HEAD/Music/National Anthems/United States of America Intro.mod -------------------------------------------------------------------------------- /Tilesets/Credits.md: -------------------------------------------------------------------------------- 1 | Old Halls by AFI - Created by AFI#8956 on the community Discord, uploaded by DeerTears. Distributed with permission. 2 | Free Furniture by yoanqwp - Created by yoanqwp#8156 on the community Discord, uploaded by DigiDuncan. Distributed with permission. -------------------------------------------------------------------------------- /Music/SFX/Readme.md: -------------------------------------------------------------------------------- 1 | # Credits: 2 | 3 | **Ember#1765 / DeerTears:** 4 | 5 | - fast wind gust.mod 6 | - harsh wind gust.mod 7 | - menu no thanks.mod 8 | - nuh-uh.mod 9 | - odd open inventory.mod 10 | - old telephone 1.mod 11 | - racecar zoom.mod 12 | - smb3okay.mod 13 | -------------------------------------------------------------------------------- /Sprites/Static/Cats/README.md: -------------------------------------------------------------------------------- 1 | # Cat Sprites 2 | 3 | A set of 7 static cat sprites based on the cat sprite from the GB Studio demo. 4 | 5 | - Smudgie: `t_cat_calico_static.png` 6 | - Nicky: `t_cat_fat_tuxedo_static.png` 7 | - Bertie: `t_cat_grey_tuxedo_static.png` 8 | - Jett: `t_cat_short_black_static.png` 9 | - Einstein: `t_cat_short_tuxedo_static.png` 10 | - Knuckles: `t_cat_tuxedo_static.png` 11 | - Snobol: `t_cat_white_static.png` 12 | -------------------------------------------------------------------------------- /Scripts/Camera/break camera from player.txt: -------------------------------------------------------------------------------- 1 | { 2 | "script": [ 3 | { 4 | "id": "b7afdf6b-72a5-4f4e-9bd2-a057d047364e", 5 | "command": "EVENT_CAMERA_MOVE_TO", 6 | "args": { 7 | "x": 0, 8 | "y": 0, 9 | "speed": "0" 10 | } 11 | }, 12 | 13 | { 14 | "id": "d4997ea8-b49d-446e-a6ad-26467fc06ee5", 15 | "command": "EVENT_END" 16 | } 17 | ], 18 | "__type": "script" 19 | } -------------------------------------------------------------------------------- /Sprites/Animated/README.md: -------------------------------------------------------------------------------- 1 | # Animated Non-Actor Sprites 2 | 3 | By TommySezSoWhat 4 | - `d20_anim.png`: Rolling D20 animation. 5 | - `music_notes.png`: Scrolling music notes, using the note graphic from the default music emote. 6 | 7 | By Nath on the GB Studio Discord 8 | - `selection_box.png`: Marching ants animation in a box 9 | 10 | By krümel on the GB Studio Discord: 11 | 12 | - `Animals` 13 | - `Cards` 14 | - `Crosshair` 15 | - `Dice` 16 | - `krümel's People` 17 | 18 | By Kalyen 19 | - `Fairy_wing_r.png` 20 | - `Fairy_wing_l.png`: Flapping wings 21 | -------------------------------------------------------------------------------- /UI/README.md: -------------------------------------------------------------------------------- 1 | # Credits: 2 | 3 | ## Cursors 4 | 5 | **Chris Maltby:** 6 | 7 | - `default cursor.png` 8 | 9 | **AstraLee:** 10 | 11 | - `SkyrimCursor.png` - "Designed similar to the UI of Skyrim. Recommend for use with inverted fonts." 12 | 13 | ## Emotes 14 | 15 | **Chris Maltby:** 16 | 17 | - `default emotes.png` 18 | 19 | 20 | **Gram:** 21 | 22 | - `grams-emotes.png`: "Redid the standard emote bubbles to be a more rounded. A little change but they looks much better. Free to use." 23 | 24 | ## Frames 25 | 26 | **Chris Maltby:** 27 | 28 | - `default frame.png` 29 | 30 | **TommySezSoWhat:** 31 | 32 | - `simple_frame.png` - "Very simple single-line frame with iffy anti-aliases at the corners." 33 | 34 | **AstraLee:** 35 | 36 | - `SkyrimFrame.png` - "Designed similar to the UI of Skyrim. Recommend for use with inverted fonts." 37 | -------------------------------------------------------------------------------- /Scripts/Camera/Screenscroll/screenscroll_scene_init.txt: -------------------------------------------------------------------------------- 1 | { 2 | "script": [ 3 | { 4 | "id": "b7afdf6b-72a5-4f4e-9bd2-a057d047364e", 5 | "command": "EVENT_CAMERA_MOVE_TO", 6 | "args": { 7 | "x": 0, 8 | "y": 0, 9 | "speed": "0" 10 | } 11 | }, 12 | { 13 | "id": "445484e7-6f06-469a-a2c6-7c02d432b2e8", 14 | "command": "EVENT_SET_VALUE", 15 | "args": { 16 | "variable": "0", 17 | "value": { 18 | "type": "number", 19 | "value": 0 20 | } 21 | } 22 | }, 23 | { 24 | "id": "d4997ea8-b49d-446e-a6ad-26467fc06ee5", 25 | "command": "EVENT_END" 26 | } 27 | ], 28 | "__type": "script" 29 | } -------------------------------------------------------------------------------- /Fonts/README.md: -------------------------------------------------------------------------------- 1 | # Credits: 2 | 3 | **TommysezSoWhat:** 4 | 5 | - `d20_ascii.png`: Modified character set to include a D20 outline and single-character representations of the numbers 10-20. 6 | 7 | **Chris Maltby:** 8 | 9 | - `default ascii.png`: The default character set that comes with GB Studio. 10 | 11 | **krümel:** 12 | 13 | - `Kirby's Adventure Ability Help` 14 | - `Love Story and Theremin` 15 | - `Multiboot Menu (GBA)` 16 | - `Trolls on Treasure Island` 17 | - `Zero Wing` 18 | 19 | **DigiDuncan:** 20 | 21 | - `hex.png`: A debugging tool to help you find the location of special characters on the sheet. 22 | - `Gothic`: A rough conversion of the MS Gothic font, with some liberties taken for the format. Also included, single characters for 10-20. 23 | 24 | **Anima/Animaloser/SodoDev:** 25 | 26 | - `modifiedfinalfantasylegends.png`: Modified Final Fantasy Legends font. 27 | - `thinrpg.png`: Thin font. For easy reading. 28 | 29 | **LoftyAu:** 30 | 31 | - `spongebob.png`: A Spongebob-esque GB font. 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Ember Bland 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How-To Contribute 2 | 3 | ## #1 Filenames 4 | 5 | Make sure the file you're adding has a unique and distinctive name. 6 | If you're using a common name ("cactus", "apple", "dance") put a number at the end of it so others may use the same name. 7 | 8 | **Good filename examples:** 9 | 10 | - "short_cactus_1.png" 11 | - "short_cactus_2.png" 12 | - "husky_howling.mod" 13 | - "wolf_howl_1.mod" 14 | - "jenna's_house.png" 15 | 16 | **Bad filename examples:** 17 | 18 | - "ascii.png" 19 | - "plant27.png" 20 | - "background2.png 21 | - "template.mod" 22 | - "mysong.mod" 23 | 24 | ## #2 Filetypes 25 | 26 | No working files (.psd, .ai, .pdn, .gimp, .etc). Please only add .png images and .mod music files if you're submitting assets to be used. Don't make anybody else have to do the file-conversion process! 27 | 28 | ## #3 The Github Process 29 | 30 | 1. Have a Github account with all your files ready to be added 31 | 32 | 2. Make a fork of this repository 33 | 34 | 3. Upload your own files to your own fork (using the appropriate folders too) 35 | 36 | 4. Edit the README.md of the folder that has your new files to include the following formatting: 37 | 38 | **Your Name:** 39 | 40 | ``Your file`` - And a little blurb describing it 41 | 42 | 5. Make a pull request across forks. Make sure the page is showing `[my repository] <== [your fork]` 43 | 44 | 6. If you'd like to be added to the contributors list so you can approve your own pull requests or approve others', just let me know in your pull request. I'm happy to have more people contribute often. 45 | 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![alt text](https://github.com/DeerTears/GB-Studio-Community-Assets/blob/master/titlecard_july11_2019.png "GB Studio Community Assets Titlecard") 2 | 3 | For all users to submit their own works. Must be original and usable in GB Studio. **Please do not upload content that you did not make.** 4 | 5 | No attribution is required, all assets can be freely distributed and used commercially. If you're submitting your own work, you must be okay with it being used commercially and potentially redistributed without credit. Read the LICENCE file for more details. 6 | 7 | # How-To Credit 8 | 9 | A README.md file exists for each folder. These README files contain the names of every asset creator, followed by a list of the assets they've made for that particular folder. If you use an asset from the repository, please read-up on who made the asset you've downloaded and pay it forward by including the asset-maker's name in your game's credits. :) 10 | 11 | # How-To Contribute 12 | 13 | [Read the CONTRIBUTING.MD file](https://github.com/DeerTears/GB-Studio-Community-Assets/blob/master/CONTRIBUTING.md) 14 | 15 | If you need additional help having your assets added to the repository, or you're experiencing difficulties downloading/using any assets from this repository, [join the GB Studio Discord](https://discord.gg/2hYeJ4m). 16 | 17 | # Looking for Community-made Tools and Templates? 18 | 19 | [See the list of Community Links.](https://github.com/DeerTears/GB-Studio-Community-Assets/blob/master/COMMUNITY_LINKS.md) This page contains links to tools, project templates, and asset packs for use with GB Studio. 20 | 21 | # Broken .mod Files Warning 22 | 23 | There have been multiple reports of some .mod files being unreadible by OpenMPT and causing GB Studio to crash on build. This is being investigated. In the meantime, remember to save and backup your project folder, especially before adding new music. You can always test a .mod file using OpenMPT. If it won't play in OpenMPT first, it will crash GB Studio if you attempt to build with the .mod file in your project. 24 | 25 | **Please report any bugged .mod files by name in the Issues tab!** 26 | -------------------------------------------------------------------------------- /Engine/GBT Player Banks/README.md: -------------------------------------------------------------------------------- 1 | # Credits 2 | 3 | **Ember:** 4 | 5 | - `Ember Triangle.s` - The usual waveforms, but instrument 9 (Ringy) is replaced with a stuttery triangle wave that goes from 0hx to 8hx and back. I like low-fidelity triangle waves and this has been a long time coming. 6 | 7 | ## How to alter GBT Player Banks for Channel 3 8 | 9 | [It is highly recomended you read the music documentation before continuing.](https://gbstudio.dev/docs/music) 10 | 11 | GBT Player can be compiled to use a different set of 8 pre-determined waveforms for Channel 3, compared to the defaults that are mentioned in the music docs. This lets you edit all 8 waveforms for Channel 3 on a per-game basis. These 8 waveforms can not be swapped-out during gameplay. 12 | 13 | After using Engine Eject (2.0.0 and above) the file `gbt_player_bank1.s` can be found inside of `assets/engine/src/core`. Lines 40 to 47 contain sets of nibbles that determine the waveform shape for each of Channel 3's instruments. 14 | 15 | Each line contains 32 nibbles joined together in groups of 2. Each nibble represents the amplitude of a sample from 0 to F. 16 | 17 | **Example:** 18 | ``` 19 | gbt_wave: ; unofficial edit 20 | .DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; square wave 21 | .DB 0x79,0xBC,0xDE,0xEF,0xFF,0xEE,0xDC,0xB9,0x75,0x43,0x21,0x10,0x00,0x11,0x23,0x45 ; sine wave 22 | .DB 0xFF,0xEE,0xDD,0xCC,0xBB,0xAA,0x99,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11,0x00 ; sawtooth 23 | .DB 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11 ; triangle 24 | .DB 0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,0x12,0x34,0x45,0x56,0x78,0x9A,0xBC,0xDE ; double-speed triangle 25 | ``` 26 | 27 | **Example**: 0xFF represents two samples of maximum amplitude. One set to `F` amplitude, the other set to `F` amplitude. 28 | **Example**: 0x00 represents two samples of minimum amplitude. One set to `0` amplitude, the other set to `0` amplitude. 29 | **Example**: 0x0F represents two samples of mixed amplitude. One set to `0` amplitude, the other set to `F` amplitude. 30 | 31 | So long as the formatting of the nibbles remain the same, their values can be changed to any 16-bit value to create waveforms other than the GBT Player defaults. Changing the in-game samples here will not update the samples in template.mod, so adjust these samples with this in mind. hUGETracker features a sample-drawing tool that shows the necessary nibbles to create your desired waveform. 32 | 33 | Here's a new waveform that can not be found in GBT Player by default: 34 | ``` 35 | gbt_wave: ; unofficial edit 36 | .DB 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11 ; triangle wave 37 | ``` 38 | 39 | Replacing one of the instruments with the above code will change the corrosponding instrument to your new waveform. 40 | -------------------------------------------------------------------------------- /Music/Readme.md: -------------------------------------------------------------------------------- 1 | Join the GB Studio discord to answer your music questions: https://discord.gg/2hYeJ4m 2 | 3 | Music Docs: https://www.gbstudio.dev/docs/music/ 4 | 5 | # Credits 6 | 7 | **krümel (crumb)#0723:** 8 | 9 | **Action** 10 | - Boss Fight 1: Fast, upbeat, hectic 11 | - Boss Fight 2: Cool, steady backbeat, tense 12 | - Boss Fight 3: Tense, collected 13 | - Sneaking Around: Short, low-key stealth tune 14 | - Free OST 1 Fighting 15 | - Free OST 1 Backstreets 16 | - Joyous Takeoff 17 | - Dancing and Infiltrating 18 | - Sugar Craze 19 | - Monty's Overheating Spaceship 20 | 21 | **Cutscenes** 22 | - Detective Intro - short silence at start (Little Tune 3) 23 | - Peppy Pop Song - length of 1:24, doesn't loop (Ending1) 24 | - Determined 25 | - Twilight Drive 26 | - Free OST 1 Fanfare 27 | - Free OST 1 Ending Theme 28 | 29 | **Menu Themes** 30 | - Free OST 1 Character Select 31 | 32 | **Overworld** 33 | - Peppy Regal Overworld 34 | - Great Melody01 35 | - Great Melody02 36 | - Little Tune 11 37 | - In the Town 38 | - Villains of Hiphop 39 | 40 | **Jingles** 41 | - Awkward Death 42 | - Battle Encounter 43 | - Battle Motif 44 | - Excited Suspense 45 | - Falling Asleep 46 | - Game Over Loop 47 | - Nursery Rhyme with pauses 48 | - Out of Energy Game Over 49 | - Pitfall Death 50 | - Radical Intro 51 | - Radical Victory 52 | - Short Lullaby with Key Modulation 53 | - Short SML2-Style Jingle 54 | - Silly Death 55 | - Slow death 56 | - Swing into Victory 57 | - The Sad Truth 58 | - Victory Fanfare 59 | - Victory Lap 60 | - Rascal's Ditty 61 | 62 | **Drumbeats** 63 | - Messy 90s Uptempo Hiphop 64 | - Kick Kick Snare 65 | - Backbeat Metal Drumming 66 | - Boots Cats 67 | - Duck Tales Drumbeat 68 | - Kick Kick Kick Crash 69 | - Halftime Metal Drumming 70 | - Supa-Hip Breakbeat 71 | - Backbeat with Hats 72 | - Upbeat Metal Drumming 73 | - Kick Stutter 74 | 75 | **National Anthems** 76 | - France Intro - Opening 4 bars of France's national anthem 77 | - Germany Intro - Opening 4 bars of Germany's national anthem 78 | - Italy Intro - Opening 4 bars of Italy's national anthem 79 | - United Kingdom Intro - Opening 4 bars of UK's national anthem 80 | - United States Intro - Opening 8 bars of US's national anthem 81 | 82 | **SFX** 83 | - Alarm Clock 84 | - Alarm System 85 | - Clock 86 | - Clock2 87 | - EuroCop 88 | - Explosion1 89 | - Missle Alert 90 | - Nokia Tune 91 | - Phone Ring 92 | - Pickup_Coin 93 | - Powerup 94 | - Powerup2 95 | - Powerup3 96 | - Squeal Door 97 | - Vibration Alarm 98 | 99 | **Ember#1765 / DeerTears:** 100 | 101 | **Action** 102 | - Compression - A drum-heavy hiphop song played a little too fast. 103 | - Tape It Together - Dungeon Spelunking Music 104 | - Serious Ping Pong Matches 105 | 106 | **Cutscenes** 107 | - Scrolling Text - 6/8 Fanfare with a chorus in 11/8 108 | - Short Hauntings 109 | 110 | **Menu Themes** 111 | - MBR Settings 112 | 113 | **SFX** 114 | - fast wind gust 115 | - harsh wind gust 116 | - menu no thanks 117 | - nuh-uh 118 | - odd open inventory 119 | - old telephone 1 120 | - racecar zoom 121 | - smb3okay 122 | 123 | **Overworld** 124 | - Darkstone - Delay-heavy song for caves, featured in the game 6rooms 125 | - The Gang's All Here - The intro part is out of key but it's otherwise a lighthearted song for walking in the park 126 | 127 | **MilkyTracker Templates** 128 | - template.xm - An authentic conversion of template.mod to .xm 129 | 130 | **Tomas Danko:** 131 | 132 | http://www.danko.se/ 133 | 134 | Shared under the Attribution 4.0 CC Licence. 135 | 136 | - FridgeMusic - Slow, unsteady but relaxed 137 | - Park Music - Upbeat version of Fridgemusic, very catchy 138 | -------------------------------------------------------------------------------- /COMMUNITY_LINKS.md: -------------------------------------------------------------------------------- 1 | # Community Links 2 | 3 | None of these links are endorsed officially by GB Studio or Chris Maltby. Not all of the contents following these links are usable under the MIT licence. Refer to each page for licence details. As always with the internet, enter at your own risk. 4 | 5 | ## Free Software 6 | 7 | Name | Author | Use | Website | From GB Community 8 | ---- | ------ | --- | ------- | ------ 9 | GylphBoy Swap | sododev | Hacks non-Latin Glyphs into GBS | https://sododev.itch.io/glyphboyswap | Yes 10 | Gameboy Sprite Exporter | momeka | Counts and Manages Unique 8x8 Background Tiles | https://momeka.itch.io/gameboy-tools | Yes 11 | RotSprite | Xenowhirl | Rotates pixel art | http://info.sonicretro.org/RotSprite | No 12 | Ft2Mod | James Park | Converts Famitracker text export into OpenMPT paste data | http://ft2mod.jamespark.ninja/ | Yes 13 | MaxBgCalc | James Park | Calculates X or Y image dimensions to help you maximize your background size | http://maxbgcalc.jamespark.ninja/ | Yes 14 | GbBgTxt | James Park | Generates images with text using your GB Studio font assets | http://gbbgtxt.jamespark.ninja/ | Yes 15 | 16 | ## Project Templates 17 | 18 | Name | Author | Latest Compatible Version | Link 19 | ---- | ------ | -------------- | ---- 20 | Actor Switching | digthezig | 1.1.0 | https://digthezig.itch.io/switching 21 | 3D Maze | jojoruteon | 1.2.1 | https://jojoruteon.itch.io/3dmaze-gbstudio 22 | Battle System | manugamesdev | 1.1.0 | https://manugamesdev.itch.io/battle-system 23 | Dungeon Crawler Template | TOXWORKS | 1.2.0 | https://toxworks.itch.io/dungeon-crawler-in-gb 24 | Real Time Combat | manugamesdev | 1.1.0 | https://manugamesdev.itch.io/real-time-combat 25 | Menu/Inventory System | TOXWORKS | 1.1.0 | https://toxworks.itch.io/menu-system-in-gb 26 | Portal Gun System for GB Studio | TOXWORKS | 1.2.0 | https://toxworks.itch.io/portal-gun-system-in-gb 27 | Sododev Text Input | SodoDev | 2.0.0 | https://sododev.itch.io/sododev-text-input 28 | Text Input | TOXWORKS | 1.1.0 | https://toxworks.itch.io/text-input-system-in-gb 29 | Text Entry Template | Setsune Wave | 2.0.0 | https://setsune.itch.io/textinputgbs2 30 | Jumping for Other Actors (Platformer) | Bumbiss | 2.0.0 | https://bumbiss.itch.io/jumping-for-actors-in-gb-studio 31 | 32 | ## Free Asset Packs 33 | 34 | Name | Author | Contains | Link 35 | ---- | ------ | ---- | ---- 36 | Retro Horror Asset Pack | catladycreates | Animated Actors, Tilesets, Tiled Working File | https://catladycreates.itch.io/horror-assest-gb-studio 37 | GB Studio Fence Tiles | cobgoblin | Tilesets | https://cobgoblin.itch.io/gbfences 38 | Gio Ex's GB studio Resource Pack | Gio-Ex | UI Elements, Background, Actor, | https://gio-ex.itch.io/gb-studio-resource-pack 39 | Where's Naldo + Extra | moshuo | Tileset | https://moshuo.itch.io/gbstudio-sprites 40 | GB Studio Tiles - Woodland | pixelmech | Tilemap, Tiled Working File | https://pixelmech.itch.io/gb-studio-tiles 41 | sprite-pack-1 | pollorenzo | Animated Actors, UI Elements | https://pollorenzo.itch.io/sprite-pack-1 42 | GB Studio Sprites 16x16 | rekkimaru | Actors | https://rekkimaru.itch.io/gb-studio-sprites-16x16 43 | GB Studio Dungeon Tileset | rekkimaru | Tilemap, Actors, Tiled Working File | https://rekkimaru.itch.io/gb-studio-dungeon-tileset-8x8 44 | DIALOG BOXES + MORE FOR GB STUDIO | wyatt199x | UI Elements, Default Font Alterations | https://wyatt199x.itch.io/dialog-boxes-more-for-gb-studio 45 | Route1 Song.mod | copperine | Free song | https://cdn.discordapp.com/attachments/570924885291827200/759130941532274708/route1.mod 46 | GB Studio Sprites | rustedparadigm | Animated Actors | https://rustedparadigm.itch.io/gbstudio-sprites 47 | GB Studio Tilesets | rustedparadigm | Tilesets | https://rustedparadigm.itch.io/gbstudio-tilesets 48 | GB Studio Spartan Templates | rustedparadigm | Spartan Working Files | https://rustedparadigm.itch.io/gbs-spartan-templates 49 | 50 | ## Free Fonts 51 | 52 | ### .ttf 53 | Name | Author | Licence | Link 54 | ---- | ------ | ------- | ---- 55 | Press Start 2P | CodeMan38 | [OFL](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL) | https://fonts.google.com/specimen/Press+Start+2P#license 56 | 57 | ### .png 58 | Name | Author | Licence | Link 59 | ---- | ------ | ------- | ---- 60 | Fonts for GB Studio | jeremyoduber | none, see .zip Readme | https://jeremyoduber.itch.io/fonts-for-gb-studio 61 | -------------------------------------------------------------------------------- /Music/template.xm/README.md: -------------------------------------------------------------------------------- 1 | ## Credits 2 | 3 | These templates were created by Ember#1765 / DeerTears with the help of MelonadeM and richardLULZ 4 | 5 | **Thanks to:** 6 | 7 | - MelonadeM for being an all-knowing GBT guide 8 | - richardLULZ for assisting with music docs and code review 9 | - chris for making GB Studio 10 | - GB Studio community for being awesome! 11 | - and AntonioND for making GBT Player 12 | 13 | ## What are these templates for? 14 | 15 | If you use MilkyTracker, you can save yourself some time when composing for GBT Player by using these templates. Normally you'd have to hit "save as" on template.mod to work in .xm, but these templates have done it for you. MilkyTracker corrupts .mod files if they are opened and then "save" is pressed, which is why you want to work in the. xm format. 16 | 17 | **Basically,** you can hit "save as" on any file to convert to a different file extension, just *never* hit "save" on a .mod file in Milkytracker. Work in .xm files and "save as" .mod when you want to test your song in-game. These .xm files just save you from having to do this every time you want to use the preview GBT instruments found in template.mod. 18 | 19 | ## Which template should I use? 20 | 21 | tastytemplate.xm was made to be more useful than template.mod is on its own. If you're reading this, you should use it to save yourself the hassle. template.xm only exists to show the preservation of template.mod to the .xm format in MilkyTracker, and it contains note data that is not necessarily helpful but is kept for historical reasons. 22 | 23 | tastytemplate is my own concoction of tweaks to the template to make it much easier to compose. Here's what I changed: 24 | 25 | **Instrument Names** 26 | 27 | richardLULZ and I analysed the results of GBT's instrument test file in Audacity, and we have given all the wave channels their own names. The noise channels were harder to identify, so I gave them nicknames so they are easier for composers to conceptualise how they can be used. richardLULZ provided really useful information on how they're generated too, which is currently in the gb-studio-site music docs. The noise channel sounds are very uncommon to our ears (except the white noise channel) so this is where I stepped in with artistic liberties. You can rename them however you like, I just wanted *something* better than "ch15" "ch16" "ch17" "ch18" etc. 28 | 29 | **Samples and Tuning** 30 | 31 | The pulse channels have their 256-sample recordings removed in favour of 32-sample ideal waveforms. It's been infuriating to compose with these out-of-tune recordings and these pulses were super simple to make. I understand that the wave instruments have all been slightly detuned to match the pitch of the pulse channels, but channel 3's square instrument (Ehx / 14 in base10) was way out of tune with the rest, so this instrument got simplified to 32 samples as well (with no instrument detuning). 32 | 33 | **All channels have muted notes at C4 with various instruments** 34 | 35 | I hope this gets the idea across about what instruments can be used on which channels better. I really wish we could make comments in these things, but MilkyTracker isn't about comments I guess. 36 | 37 | Alright, back to talking about both templates at once: 38 | 39 | ## Why do we need templates? 40 | 41 | First of all, any GB Studio composers should know that GB Studio relies entirely on GBT Player for .mod file playback. Second of all, GBT Player users should know that it does not read custom sampledata from the .mod file you're making. 42 | 43 | GBT Player has a bunch of pre-baked instruments to be called upon, so you're just writing the note, instrument and effect data with the .mod format. These .xm files contain instruments that are examples of what you will hear when your .mod file is played back with GBT Player. 44 | 45 | ## Tips on In-Game Volume Playback 46 | 47 | GBT Player always pulls from the last volume effect that you set for the channel. Example: 48 | ```__Channel 1__ 49 | C5 01 -- C40 50 | -- -- -- C00 51 | C5 01 -- --- 52 | -- -- -- C00 53 | ``` 54 | This will only play 1 note in-game, even though MilkyTracker (and others) will play 2 notes. 55 | 56 | Channels 1 and 2 will only make volume changes in steps of 4 57 | `0, 4, 8, C, 10, 14, 18, 1C, 20, cont. up to 40` 58 | 59 | Channel 3 only makes volume changes in steps of 16 60 | `0, 10, 20, 30 and 40` 61 | 62 | Channel 4 shows all volume changes 63 | `...4, 5, 6, 7, 8, 9, A, B, C D, E, F, 10, 11, 12...` 64 | 65 | `C3C` is the same as `C40` in all channels for some reason - thanks MelonadeM for discovering this 66 | -------------------------------------------------------------------------------- /Scripts/Camera/Screenscroll/screenscroll_trigger.txt: -------------------------------------------------------------------------------- 1 | { 2 | "script": [ 3 | { 4 | "id": "90830cb2-a146-4193-ac7b-857432bece89", 5 | "command": "EVENT_SWITCH", 6 | "args": { 7 | "variable": "0", 8 | "choices": 2, 9 | "__collapseCase0": false, 10 | "value0": 0, 11 | "__collapseCase1": false, 12 | "value1": 1, 13 | "__collapseCase2": false, 14 | "value2": 3, 15 | "__collapseCase3": false, 16 | "value3": 4, 17 | "__collapseCase4": false, 18 | "value4": 5, 19 | "__collapseCase5": false, 20 | "value5": 6, 21 | "__collapseCase6": false, 22 | "value6": 7, 23 | "__collapseCase7": false, 24 | "value7": 8, 25 | "__collapseCase8": false, 26 | "value8": 9, 27 | "__collapseCase9": false, 28 | "value9": 10, 29 | "__collapseCase10": false, 30 | "value10": 11, 31 | "__collapseCase11": false, 32 | "value11": 12, 33 | "__collapseCase12": false, 34 | "value12": 13, 35 | "__collapseCase13": false, 36 | "value13": 14, 37 | "__collapseCase14": false, 38 | "value14": 15, 39 | "__collapseCase15": false, 40 | "value15": 16, 41 | "__collapseElse": false, 42 | "__disableElse": true 43 | }, 44 | "children": { 45 | "true0": [ 46 | { 47 | "id": "5244b31e-5e2c-4496-b8f4-c341980c2d7e", 48 | "command": "EVENT_CAMERA_MOVE_TO", 49 | "args": { 50 | "x": 20, 51 | "y": 0, 52 | "speed": "1" 53 | } 54 | }, 55 | { 56 | "id": "5dc26bd3-39d8-4cec-90f6-dbc6a9ef424e", 57 | "command": "EVENT_ACTOR_MOVE_RELATIVE", 58 | "args": { 59 | "actorId": "$self$", 60 | "x": 3, 61 | "y": 0, 62 | "moveType": "horizontal", 63 | "useCollisions": false 64 | } 65 | }, 66 | { 67 | "id": "b8a77252-627b-426f-99ab-842c51b3703c", 68 | "command": "EVENT_SET_VALUE", 69 | "args": { 70 | "variable": "0", 71 | "value": { 72 | "type": "number", 73 | "value": 1 74 | } 75 | } 76 | }, 77 | { 78 | "id": "800c5026-715a-4d12-8b34-28708469b8a6", 79 | "command": "EVENT_END" 80 | } 81 | ], 82 | "true1": [ 83 | { 84 | "id": "0b60118b-be04-4e3e-b272-18738cab40ea", 85 | "command": "EVENT_CAMERA_MOVE_TO", 86 | "args": { 87 | "x": 0, 88 | "y": 0, 89 | "speed": "1" 90 | } 91 | }, 92 | { 93 | "id": "63da2fde-fa19-4234-ac2d-8aee81fabb69", 94 | "command": "EVENT_ACTOR_MOVE_RELATIVE", 95 | "args": { 96 | "actorId": "$self$", 97 | "x": -3, 98 | "y": 0, 99 | "moveType": "horizontal", 100 | "useCollisions": false 101 | } 102 | }, 103 | { 104 | "id": "056269fc-05b1-4ee1-ba7b-bc4c79207bea", 105 | "command": "EVENT_SET_VALUE", 106 | "args": { 107 | "variable": "0", 108 | "value": { 109 | "type": "number", 110 | "value": 0 111 | } 112 | } 113 | }, 114 | { 115 | "id": "b3e31b0a-8388-4f85-986f-bf59d154c26b", 116 | "command": "EVENT_END" 117 | } 118 | ], 119 | "true2": [ 120 | { 121 | "id": "c3232516-1404-4713-8d1a-7d58b9990190", 122 | "command": "EVENT_END" 123 | } 124 | ], 125 | "true3": [ 126 | { 127 | "id": "d934a39a-91b7-43e0-8a8f-4248dc39fcb4", 128 | "command": "EVENT_END" 129 | } 130 | ], 131 | "true4": [ 132 | { 133 | "id": "d9df4982-e720-499f-bd8f-f7a107bf6afc", 134 | "command": "EVENT_END" 135 | } 136 | ], 137 | "true5": [ 138 | { 139 | "id": "005923b0-d8b7-4d25-b386-f86b3fa3ef8e", 140 | "command": "EVENT_END" 141 | } 142 | ], 143 | "true6": [ 144 | { 145 | "id": "1862e8d4-806f-4583-b060-bc5d53a9d717", 146 | "command": "EVENT_END" 147 | } 148 | ], 149 | "true7": [ 150 | { 151 | "id": "367db6d7-c6d2-4699-ab15-922338d6e61a", 152 | "command": "EVENT_END" 153 | } 154 | ], 155 | "true8": [ 156 | { 157 | "id": "3749aca3-cc5c-41eb-9330-c13336568bf2", 158 | "command": "EVENT_END" 159 | } 160 | ], 161 | "true9": [ 162 | { 163 | "id": "66b1a4dd-202c-4742-8b59-01cdaabde330", 164 | "command": "EVENT_END" 165 | } 166 | ], 167 | "true10": [ 168 | { 169 | "id": "b85fc047-543f-4393-8ec6-2f5d12d8125d", 170 | "command": "EVENT_END" 171 | } 172 | ], 173 | "true11": [ 174 | { 175 | "id": "7ba53ec6-6b16-4d76-bc44-8474d52144f5", 176 | "command": "EVENT_END" 177 | } 178 | ], 179 | "true12": [ 180 | { 181 | "id": "478cfa0b-43aa-4fce-9e52-fcbff625cdfd", 182 | "command": "EVENT_END" 183 | } 184 | ], 185 | "true13": [ 186 | { 187 | "id": "43ecbd1c-61f6-4070-8c31-877e8a4f5aa5", 188 | "command": "EVENT_END" 189 | } 190 | ], 191 | "true14": [ 192 | { 193 | "id": "2dd09603-5312-4ff9-b34f-e558b0f07a18", 194 | "command": "EVENT_END" 195 | } 196 | ], 197 | "true15": [ 198 | { 199 | "id": "1bf2a839-9d45-4485-848a-c55dcc34c4d5", 200 | "command": "EVENT_END" 201 | } 202 | ], 203 | "false": [ 204 | { 205 | "id": "a3b34a96-5b48-4c7e-bcee-f71101f3d35d", 206 | "command": "EVENT_END" 207 | } 208 | ] 209 | } 210 | }, 211 | { 212 | "id": "c983710d-39a9-4728-b325-eed7ce8df3d7", 213 | "command": "EVENT_END" 214 | } 215 | ], 216 | "__type": "script" 217 | } -------------------------------------------------------------------------------- /Engine/GBT Player Banks/Ember Triangle.s: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------------------------------------- 2 | ; 3 | ; GBT Player v2.2.0 4 | ; 5 | ; SPDX-License-Identifier: MIT 6 | ; 7 | ; Copyright (c) 2009-2020, Antonio Niño Díaz 8 | ; 9 | ;------------------------------------------------------------------------------- 10 | 11 | .NR10 = 0xFF10 12 | .NR11 = 0xFF11 13 | .NR12 = 0xFF12 14 | .NR13 = 0xFF13 15 | .NR14 = 0xFF14 16 | .NR21 = 0xFF16 17 | .NR22 = 0xFF17 18 | .NR23 = 0xFF18 19 | .NR24 = 0xFF19 20 | .NR30 = 0xFF1A 21 | .NR31 = 0xFF1B 22 | .NR32 = 0xFF1C 23 | .NR33 = 0xFF1D 24 | .NR34 = 0xFF1E 25 | .NR41 = 0xFF20 26 | .NR42 = 0xFF21 27 | .NR43 = 0xFF22 28 | .NR44 = 0xFF23 29 | .NR50 = 0xFF24 30 | .NR51 = 0xFF25 31 | .NR52 = 0xFF26 32 | 33 | ;------------------------------------------------------------------------------- 34 | 35 | .area _CODE_1 36 | 37 | ;------------------------------------------------------------------------------- 38 | 39 | gbt_wave: ; 8 sounds 40 | .DB 0xA5,0xD7,0xC9,0xE1,0xBC,0x9A,0x76,0x31,0x0C,0xBA,0xDE,0x60,0x1B,0xCA,0x03,0x93 ; random :P 41 | .DB 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11 ; ember triangle 42 | .DB 0xFD,0xEC,0xDB,0xCA,0xB9,0xA8,0x97,0x86,0x79,0x68,0x57,0x46,0x35,0x24,0x13,0x02 ; little up-downs 43 | .DB 0xDE,0xFE,0xDC,0xBA,0x9A,0xA9,0x87,0x77,0x88,0x87,0x65,0x56,0x54,0x32,0x10,0x12 44 | .DB 0xAB,0xCD,0xEF,0xED,0xCB,0xA0,0x12,0x3E,0xDC,0xBA,0xBC,0xDE,0xFE,0xDC,0x32,0x10 ; triangular broken 45 | .DB 0xFF,0xEE,0xDD,0xCC,0xBB,0xAA,0x99,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11,0x00 ; triangular 46 | .DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; square 50% 47 | .DB 0x79,0xBC,0xDE,0xEF,0xFF,0xEE,0xDC,0xB9,0x75,0x43,0x21,0x10,0x00,0x11,0x23,0x45 ; sine 48 | 49 | ; gbt_noise: ; Moved to Mod2GBT for better note range & performance 50 | ; 7 bit, can adjust with pitch C D# F# A# C 51 | ;.DB 0x5F,0x4E,0x3E,0x2F,0x2E,0x2C,0x1F,0x0F 52 | ; 15 bit 53 | ;.DB 0x64,0x54,0x44,0x24,0x00 54 | ;.DB 0x67,0x56,0x46 55 | 56 | gbt_frequencies: 57 | .DW 44, 156, 262, 363, 457, 547, 631, 710, 786, 854, 923, 986 58 | .DW 1046, 1102, 1155, 1205, 1253, 1297, 1339, 1379, 1417, 1452, 1486, 1517 59 | .DW 1546, 1575, 1602, 1627, 1650, 1673, 1694, 1714, 1732, 1750, 1767, 1783 60 | .DW 1798, 1812, 1825, 1837, 1849, 1860, 1871, 1881, 1890, 1899, 1907, 1915 61 | .DW 1923, 1930, 1936, 1943, 1949, 1954, 1959, 1964, 1969, 1974, 1978, 1982 62 | .DW 1985, 1988, 1992, 1995, 1998, 2001, 2004, 2006, 2009, 2011, 2013, 2015 63 | 64 | ;------------------------------------------------------------------------------- 65 | 66 | _gbt_get_freq_from_index: ; a = index, bc = returned freq 67 | ld hl,#gbt_frequencies 68 | ld c,a 69 | ld b,#0 70 | add hl,bc 71 | add hl,bc 72 | ld c,(hl) 73 | inc hl 74 | ld b,(hl) 75 | ret 76 | 77 | ;------------------------------------------------------------------------------- 78 | ;---------------------------------- Channel 1 ---------------------------------- 79 | ;------------------------------------------------------------------------------- 80 | 81 | gbt_channel_1_handle:: ; de = info 82 | 83 | ld a,(gbt_channels_enabled) 84 | and a,#0x01 85 | jr nz,channel1_enabled$ 86 | 87 | ; Channel is disabled. Increment pointer as needed 88 | 89 | ld a,(de) 90 | inc de 91 | bit 7,a 92 | jr nz,ch1_more_bytes$ 93 | bit 6,a 94 | jr z,ch1_no_more_bytes_this_channel$ 95 | 96 | jr ch1_one_more_byte$ 97 | 98 | ch1_more_bytes$: 99 | 100 | ld a,(de) 101 | inc de 102 | bit 7,a 103 | jr z,ch1_no_more_bytes_this_channel$ 104 | 105 | ch1_one_more_byte$: 106 | 107 | inc de 108 | 109 | ch1_no_more_bytes_this_channel$: 110 | 111 | ret 112 | 113 | channel1_enabled$: 114 | 115 | ; Channel 1 is enabled 116 | 117 | ld a,(de) 118 | inc de 119 | 120 | bit 7,a 121 | jr nz,ch1_has_frequency$ 122 | 123 | ; Not frequency 124 | 125 | bit 6,a 126 | jr nz,ch1_instr_effects$ 127 | 128 | ; Set volume or NOP 129 | 130 | bit 5,a 131 | jr nz,ch1_just_set_volume$ 132 | 133 | ; NOP 134 | 135 | ret 136 | 137 | ch1_just_set_volume$: 138 | 139 | ; Set volume 140 | 141 | and a,#0x0F 142 | swap a 143 | ; Preserve envelope data 144 | ld b,a ; save byte 145 | ld a,(gbt_vol+0) 146 | and a,#0x0F ; mask envelope 147 | or a,b 148 | 149 | ld (gbt_vol+0),a 150 | 151 | jr refresh_channel1_regs_trig$ 152 | 153 | ch1_instr_effects$: 154 | 155 | ; Set instrument and effect 156 | 157 | ld b,a ; save byte 158 | 159 | and a,#0x30 160 | sla a 161 | sla a 162 | ld (gbt_instr+0),a ; Instrument 163 | 164 | ld a,b ; restore byte 165 | 166 | and a,#0x0F ; a = effect 167 | 168 | call gbt_channel_1_set_effect 169 | 170 | and a,a 171 | ret z ; if 0, don't refresh registers 172 | jr refresh_channel1_regs_notrig$ 173 | 174 | ch1_has_frequency$: 175 | 176 | ; Has frequency 177 | 178 | and a,#0x7F 179 | ld (gbt_arpeggio_freq_index+0*3),a 180 | ; This destroys hl and a. Returns freq in bc 181 | call _gbt_get_freq_from_index 182 | 183 | ld a,c 184 | ld (gbt_freq+0*2+0),a 185 | ld a,b 186 | ld (gbt_freq+0*2+1),a ; Get frequency 187 | 188 | ld a,(de) 189 | inc de 190 | 191 | bit 7,a 192 | jr nz,ch1_freq_instr_and_effect$ 193 | 194 | ; Freq + Instr + Volume 195 | 196 | ld b,a ; save byte 197 | 198 | and a,#0x30 199 | sla a 200 | sla a 201 | ld (gbt_instr+0),a ; Instrument 202 | 203 | ld a,b ; restore byte 204 | 205 | and a,#0x0F ; a = volume 206 | 207 | swap a 208 | ; Preserve envelope data 209 | ld b,a ; save byte 210 | ld a,(gbt_vol+0) 211 | and a,#0x0F ; mask envelope 212 | or a,b 213 | 214 | ld (gbt_vol+0),a 215 | 216 | jr refresh_channel1_regs_trig$ 217 | 218 | ch1_freq_instr_and_effect$: 219 | 220 | ; Freq + Instr + Effect 221 | 222 | ld b,a ; save byte 223 | 224 | and a,#0x30 225 | sla a 226 | sla a 227 | ld (gbt_instr+0),a ; Instrument 228 | 229 | ld a,b ; restore byte 230 | 231 | and a,#0x0F ; a = effect 232 | 233 | call gbt_channel_1_set_effect 234 | 235 | ;jr refresh_channel1_regs_trig$ 236 | 237 | 238 | ; fall through! 239 | 240 | ; ----------------- 241 | 242 | refresh_channel1_regs_trig$: 243 | 244 | channel1_refresh_registers_trig: 245 | 246 | xor a,a 247 | ld (#.NR10),a 248 | ld a,(gbt_instr+0) 249 | ld (#.NR11),a 250 | ld a,(gbt_vol+0) 251 | ld (#.NR12),a 252 | ld a,(gbt_freq+0*2+0) 253 | ld (#.NR13),a 254 | ld a,(gbt_freq+0*2+1) 255 | or a,#0x80 ; start 256 | ld (#.NR14),a 257 | 258 | ret 259 | 260 | refresh_channel1_regs_notrig$: 261 | 262 | channel1_refresh_registers_notrig: 263 | 264 | xor a,a 265 | ld (#.NR10),a 266 | ld a,(gbt_instr+0) 267 | ld (#.NR11),a 268 | ld a,(gbt_freq+0*2+0) 269 | ld (#.NR13),a 270 | ld a,(gbt_freq+0*2+1) 271 | ld (#.NR14),a 272 | 273 | ret 274 | 275 | ; ------------------ 276 | 277 | channel1_update_effects: ; returns 1 in a if it is needed to update sound registers 278 | 279 | ; Cut note 280 | ; -------- 281 | 282 | ld a,(gbt_cut_note_tick+0) 283 | ld hl,#gbt_ticks_elapsed 284 | cp a,(hl) 285 | jp nz,ch1_dont_cut$ 286 | 287 | dec a ; a = 0xFF 288 | ld (gbt_cut_note_tick+0),a ; disable cut note 289 | 290 | xor a,a ; vol = 0 291 | ld (#.NR12),a 292 | ld a,#0x80 ; start 293 | ld (#.NR14),a 294 | 295 | ch1_dont_cut$: 296 | 297 | ; Arpeggio or Sweep 298 | ; -------- 299 | 300 | ld a,(gbt_arpeggio_enabled+0) 301 | and a,a 302 | ret z ; a is 0, return 0 303 | 304 | ; Check if Sweep or Arpeggio (4-5 cycles) 305 | and a,#1 306 | jr z,gbt_ch1_sweep_run$ 307 | 308 | ; If enabled arpeggio, handle it 309 | 310 | ld a,(gbt_arpeggio_tick+0) 311 | and a,a 312 | jr nz,ch1_not_tick_0$ 313 | 314 | ; Tick 0 - Set original frequency 315 | 316 | ld a,(gbt_arpeggio_freq_index+0*3+0) 317 | 318 | call _gbt_get_freq_from_index 319 | 320 | ld a,c 321 | ld (gbt_freq+0*2+0),a 322 | ld a,b 323 | ld (gbt_freq+0*2+1),a ; Set frequency 324 | 325 | ld a,#1 326 | ld (gbt_arpeggio_tick+0),a 327 | 328 | ret ; ret 1 329 | 330 | ch1_not_tick_0$: 331 | 332 | cp a,#1 333 | jr nz,ch1_not_tick_1$ 334 | 335 | ; Tick 1 336 | 337 | ld a,(gbt_arpeggio_freq_index+0*3+1) 338 | 339 | call _gbt_get_freq_from_index 340 | 341 | ld a,c 342 | ld (gbt_freq+0*2+0),a 343 | ld a,b 344 | ld (gbt_freq+0*2+1),a ; Set frequency 345 | 346 | ld a,#2 347 | ld (gbt_arpeggio_tick+0),a 348 | 349 | dec a 350 | ret ; ret 1 351 | 352 | ch1_not_tick_1$: 353 | 354 | ; Tick 2 355 | 356 | ld a,(gbt_arpeggio_freq_index+0*3+2) 357 | 358 | call _gbt_get_freq_from_index 359 | 360 | ld a,c 361 | ld (gbt_freq+0*2+0),a 362 | ld a,b 363 | ld (gbt_freq+0*2+1),a ; Set frequency 364 | 365 | xor a,a 366 | ld (gbt_arpeggio_tick+0),a 367 | 368 | inc a 369 | ret ; ret 1 370 | 371 | gbt_ch1_sweep_run$: 372 | 373 | ; PortA Pitch Sweep 374 | ; ----------- 375 | ld hl,#(gbt_freq+0*2+0) 376 | ld a,(gbt_sweep+0) 377 | bit 7,a ; bit 7, if nz, sweep up. 378 | jr z,gbt_ch1_sweep_up$ 379 | 380 | ; Sweep down - 381 | sub a,#0x80 382 | ld b,a 383 | ld a,(hl) ; Get frequency small (gbt_freq+0*2+0) 384 | sub a,b ; subtract b from a 385 | ld (hl+),a ; Set frequency small (gbt_freq+0*2+0) 386 | ld a,#1 387 | jr c,gbt_ch1_sweep_dec$ 388 | ret ; ret 1, update without trigger 389 | ; Sweep down -- 390 | gbt_ch1_sweep_dec$: 391 | dec (hl) ; DEC frequency large (gbt_freq+0*2+1) 3cy 392 | ld a,(hl) 393 | inc a ; find if decremented past 0 to exactly 255 394 | ret nz ; ret/update unless 0 395 | ld (hl-),a ; fix frequency large 0x0 396 | ld (hl),a ; fix frequency small 0x0 397 | ld (gbt_arpeggio_enabled+0),a ; disable sweep 398 | ret ; ret 0, no update 399 | 400 | ; Sweep up + 401 | gbt_ch1_sweep_up$: 402 | add a,(hl) ; add frequency small (gbt_freq+0*2+0) 403 | ld (hl+),a ; Set frequency small (gbt_freq+0*2+0) 404 | jr c,gbt_ch1_sweep_inc$ 405 | ld a,#1 406 | ret ; ret 1, update without trigger 407 | ; Sweep up ++ 408 | gbt_ch1_sweep_inc$: 409 | inc (hl) ; inc frequency large (gbt_freq+0*2+1) 2cy 410 | ld a,(hl-) 411 | and a,#0x07 ; check if wrapped to 0x08 00001000 412 | ret nz ; ret/update unless 0 413 | ld (gbt_arpeggio_enabled+0),a ; disable sweep 414 | ld (#.NR12),a ; vol = 0 415 | ld a,#0x80 ; start 416 | ld (#.NR14),a 417 | ret ; ret 0x80, update without trigger 418 | 419 | ; ----------------- 420 | 421 | ; returns a = 1 if needed to update registers, 0 if not 422 | gbt_channel_1_set_effect: ; a = effect, de = pointer to data. 423 | 424 | ld hl,#gbt_ch1_jump_table$ 425 | ld c,a 426 | ld b,#0 427 | add hl,bc 428 | add hl,bc 429 | 430 | ld a,(hl+) 431 | ld h,(hl) 432 | ld l,a 433 | 434 | ld a,(de) ; load args 435 | inc de 436 | 437 | jp (hl) 438 | 439 | gbt_ch1_jump_table$: 440 | .DW gbt_ch1_pan$ 441 | .DW gbt_ch1_arpeggio$ 442 | .DW gbt_ch1_cut_note$ 443 | .DW gbt_ch1234_nop 444 | .DW gbt_ch1_sweep$ 445 | .DW gbt_ch1234_nop 446 | .DW gbt_ch1234_nop 447 | .DW gbt_ch1234_nop 448 | .DW gbt_ch1234_jump_pattern 449 | .DW gbt_ch1234_jump_position 450 | .DW gbt_ch1234_speed 451 | .DW gbt_ch1234_nop 452 | .DW gbt_ch1234_nop 453 | .DW gbt_ch1234_nop 454 | .DW gbt_ch1234_nop 455 | .DW gbt_ch1_NRx2_VolEnv$ 456 | 457 | gbt_ch1_pan$: 458 | and a,#0x11 459 | ld (gbt_pan+0),a 460 | xor a,a 461 | ret ; ret 0 do not update registers, only NR51 at end. 462 | 463 | gbt_ch1_arpeggio$: 464 | ld b,a ; b = params 465 | 466 | ld hl,#gbt_arpeggio_freq_index+0*3 467 | ld c,(hl) ; c = base index 468 | inc hl 469 | 470 | ld a,b 471 | swap a 472 | and a,#0x0F 473 | add a,c 474 | 475 | ld (hl+),a ; save first increment 476 | 477 | ld a,b 478 | and a,#0x0F 479 | add a,c 480 | 481 | ld (hl),a ; save second increment 482 | 483 | ld a,#1 484 | ld (gbt_arpeggio_enabled+0),a 485 | ld (gbt_arpeggio_tick+0),a 486 | 487 | ret ; ret 1 488 | 489 | gbt_ch1_cut_note$: 490 | ld (gbt_cut_note_tick+0),a 491 | xor a,a ; ret 0 492 | ret 493 | 494 | gbt_ch1_NRx2_VolEnv$: ; Raw data into volume, VVVV APPP, bits 4-7 vol 495 | ld (gbt_vol+0),a ; bit 3 true = add, bits 0-2 wait period 496 | xor a,a ; ret 0 ; 0xF1 = max volume, sub 1 every 1 tick. 497 | ret ; 0x0A = min volume, add 1 every 2 ticks. 498 | 499 | gbt_ch1_sweep$: 500 | ld (gbt_sweep+0),a 501 | ld a,#2 502 | ld (gbt_arpeggio_enabled+0),a 503 | xor a,a ; ret 0 504 | ret 505 | 506 | ;------------------------------------------------------------------------------- 507 | ;---------------------------------- Channel 2 ---------------------------------- 508 | ;------------------------------------------------------------------------------- 509 | 510 | gbt_channel_2_handle:: ; de = info 511 | 512 | ld a,(gbt_channels_enabled) 513 | and a,#0x02 514 | jr nz,channel2_enabled$ 515 | 516 | ; Channel is disabled. Increment pointer as needed 517 | 518 | ld a,(de) 519 | inc de 520 | bit 7,a 521 | jr nz,ch2_more_bytes$ 522 | bit 6,a 523 | jr z,ch2_no_more_bytes_this_channel$ 524 | 525 | jr ch2_one_more_byte$ 526 | 527 | ch2_more_bytes$: 528 | 529 | ld a,(de) 530 | inc de 531 | bit 7,a 532 | jr z,ch2_no_more_bytes_this_channel$ 533 | 534 | ch2_one_more_byte$: 535 | 536 | inc de 537 | 538 | ch2_no_more_bytes_this_channel$: 539 | 540 | ret 541 | 542 | channel2_enabled$: 543 | 544 | ; Channel 2 is enabled 545 | 546 | ld a,(de) 547 | inc de 548 | 549 | bit 7,a 550 | jr nz,ch2_has_frequency$ 551 | 552 | ; Not frequency 553 | 554 | bit 6,a 555 | jr nz,ch2_instr_effects$ 556 | 557 | ; Set volume or NOP 558 | 559 | bit 5,a 560 | jr nz,ch2_just_set_volume$ 561 | 562 | ; NOP 563 | 564 | ret 565 | 566 | ch2_just_set_volume$: 567 | 568 | ; Set volume 569 | 570 | and a,#0x0F 571 | swap a 572 | ; Preserve envelope data 573 | ld b,a ; save byte 574 | ld a,(gbt_vol+1) 575 | and a,#0x0F ; mask envelope 576 | or a,b 577 | 578 | ld (gbt_vol+1),a 579 | 580 | jr refresh_channel2_regs_trig$ 581 | 582 | ch2_instr_effects$: 583 | 584 | ; Set instrument and effect 585 | 586 | ld b,a ; save byte 587 | 588 | and a,#0x30 589 | sla a 590 | sla a 591 | ld (gbt_instr+1),a ; Instrument 592 | 593 | ld a,b ; restore byte 594 | 595 | and a,#0x0F ; a = effect 596 | 597 | call gbt_channel_2_set_effect 598 | 599 | and a,a 600 | ret z ; if 0, don't refresh registers 601 | jr refresh_channel2_regs_notrig$ 602 | 603 | ch2_has_frequency$: 604 | 605 | ; Has frequency 606 | 607 | and a,#0x7F 608 | ld (gbt_arpeggio_freq_index+1*3),a 609 | ; This destroys hl and a. Returns freq in bc 610 | call _gbt_get_freq_from_index 611 | 612 | ld a,c 613 | ld (gbt_freq+1*2+0),a 614 | ld a,b 615 | ld (gbt_freq+1*2+1),a ; Get frequency 616 | 617 | ld a,(de) 618 | inc de 619 | 620 | bit 7,a 621 | jr nz,ch2_freq_instr_and_effect$ 622 | 623 | ; Freq + Instr + Volume 624 | 625 | ld b,a ; save byte 626 | 627 | and a,#0x30 628 | sla a 629 | sla a 630 | ld (gbt_instr+1),a ; Instrument 631 | 632 | ld a,b ; restore byte 633 | 634 | and a,#0x0F ; a = volume 635 | 636 | swap a 637 | ; Preserve envelope data 638 | ld b,a ; save byte 639 | ld a,(gbt_vol+1) 640 | and a,#0x0F ; mask envelope 641 | or a,b 642 | 643 | ld (gbt_vol+1),a 644 | 645 | jr refresh_channel2_regs_trig$ 646 | 647 | ch2_freq_instr_and_effect$: 648 | 649 | ; Freq + Instr + Effect 650 | 651 | ld b,a ; save byte 652 | 653 | and a,#0x30 654 | sla a 655 | sla a 656 | ld (gbt_instr+1),a ; Instrument 657 | 658 | ld a,b ; restore byte 659 | 660 | and a,#0x0F ; a = effect 661 | 662 | call gbt_channel_2_set_effect 663 | 664 | ;jr .refresh_channel2_regs_trig 665 | 666 | ; fall through! 667 | 668 | ; ----------------- 669 | 670 | refresh_channel2_regs_trig$: 671 | 672 | channel2_refresh_registers_trig: 673 | 674 | ld a,(gbt_instr+1) 675 | ld (#.NR21),a 676 | ld a,(gbt_vol+1) 677 | ld (#.NR22),a 678 | ld a,(gbt_freq+1*2+0) 679 | ld (#.NR23),a 680 | ld a,(gbt_freq+1*2+1) 681 | or a,#0x80 ; start 682 | ld (#.NR24),a 683 | 684 | ret 685 | 686 | refresh_channel2_regs_notrig$: 687 | 688 | channel2_refresh_registers_notrig: 689 | 690 | ld a,(gbt_instr+1) 691 | ld (#.NR21),a 692 | ld a,(gbt_freq+1*2+0) 693 | ld (#.NR23),a 694 | ld a,(gbt_freq+1*2+1) 695 | ld (#.NR24),a 696 | 697 | ret 698 | 699 | ; ------------------ 700 | 701 | channel2_update_effects: ; returns 1 in a if it is needed to update sound regs 702 | 703 | ; Cut note 704 | ; -------- 705 | 706 | ld a,(gbt_cut_note_tick+1) 707 | ld hl,#gbt_ticks_elapsed 708 | cp a,(hl) 709 | jp nz,ch2_dont_cut$ 710 | 711 | dec a ; a = 0xFF 712 | ld (gbt_cut_note_tick+1),a ; disable cut note 713 | 714 | xor a,a ; vol = 0 715 | ld (#.NR22),a 716 | ld a,#0x80 ; start 717 | ld (#.NR24),a 718 | 719 | ch2_dont_cut$: 720 | 721 | ; Arpeggio or Sweep 722 | ; -------- 723 | 724 | ld a,(gbt_arpeggio_enabled+1) 725 | and a,a 726 | ret z ; a is 0, return 0 727 | 728 | ; Check if Sweep or Arpeggio (5-6 cycles) 729 | and a,#1 730 | jr z,gbt_ch2_sweep_run$ 731 | ; If enabled arpeggio, handle it 732 | 733 | ld a,(gbt_arpeggio_tick+1) 734 | and a,a 735 | jr nz,ch2_not_tick_0$ 736 | 737 | ; Tick 0 - Set original frequency 738 | 739 | ld a,(gbt_arpeggio_freq_index+1*3+0) 740 | 741 | call _gbt_get_freq_from_index 742 | 743 | ld a,c 744 | ld (gbt_freq+1*2+0),a 745 | ld a,b 746 | ld (gbt_freq+1*2+1),a ; Set frequency 747 | 748 | ld a,#1 749 | ld (gbt_arpeggio_tick+1),a 750 | 751 | ret ; ret 1 752 | 753 | ch2_not_tick_0$: 754 | 755 | cp a,#1 756 | jr nz,ch2_not_tick_1$ 757 | 758 | ; Tick 1 759 | 760 | ld a,(gbt_arpeggio_freq_index+1*3+1) 761 | 762 | call _gbt_get_freq_from_index 763 | 764 | ld a,c 765 | ld (gbt_freq+1*2+0),a 766 | ld a,b 767 | ld (gbt_freq+1*2+1),a ; Set frequency 768 | 769 | ld a,#2 770 | ld (gbt_arpeggio_tick+1),a 771 | 772 | dec a 773 | ret ; ret 1 774 | 775 | ch2_not_tick_1$: 776 | 777 | ; Tick 2 778 | 779 | ld a,(gbt_arpeggio_freq_index+1*3+2) 780 | 781 | call _gbt_get_freq_from_index 782 | 783 | ld a,c 784 | ld (gbt_freq+1*2+0),a 785 | ld a,b 786 | ld (gbt_freq+1*2+1),a ; Set frequency 787 | 788 | xor a,a 789 | ld (gbt_arpeggio_tick+1),a 790 | 791 | inc a 792 | ret ; ret 1 793 | 794 | gbt_ch2_sweep_run$: 795 | 796 | ; PortA Pitch Sweep 797 | ; ----------- 798 | ld hl,#(gbt_freq+1*2+0) 799 | ld a,(gbt_sweep+1) 800 | bit 7,a ; bit 7, if nz, sweep up. 801 | jr z,gbt_ch2_sweep_up$ 802 | 803 | ; Sweep down - 804 | sub a,#0x80 805 | ld b,a 806 | ld a,(hl) ; Get frequency small (gbt_freq+0*2+0) 807 | sub a,b ; subtract b from a 808 | ld (hl+),a ; Set frequency small (gbt_freq+0*2+0) 809 | ld a,#1 810 | jr c,gbt_ch2_sweep_dec$ 811 | ret ; ret 1, update without trigger 812 | ; Sweep down -- 813 | gbt_ch2_sweep_dec$: 814 | dec (hl) ; DEC frequency large (gbt_freq+0*2+1) 3cy 815 | ld a,(hl) 816 | inc a ; find if decremented past 0 to exactly 255 817 | ret nz ; ret/update unless 0 818 | ld (hl-),a ; fix frequency large 0x0 819 | ld (hl),a ; fix frequency small 0x0 820 | ld (gbt_arpeggio_enabled+1),a ; disable sweep 821 | ret ; ret 0, no update 822 | 823 | ; Sweep up + 824 | gbt_ch2_sweep_up$: 825 | add a,(hl) ; add frequency small (gbt_freq+0*2+0) 826 | ld (hl+),a ; Set frequency small (gbt_freq+0*2+0) 827 | jr c,gbt_ch2_sweep_inc$ 828 | ld a,#1 829 | ret ; ret 1, update without trigger 830 | ; Sweep up ++ 831 | gbt_ch2_sweep_inc$: 832 | inc (hl) ; inc frequency large (gbt_freq+0*2+1) 2cy 833 | ld a,(hl-) 834 | and a,#0x07 ; check if wrapped to 0x08 00001000 835 | ret nz ; ret/update unless 0 836 | ld (gbt_arpeggio_enabled+1),a ; disable sweep 837 | ld (#.NR22),a ; vol = 0 838 | ld a,#0x80 ; start 839 | ld (#.NR24),a 840 | ret ; ret 0x80, update without trigger 841 | 842 | ; ----------------- 843 | 844 | ; returns a = 1 if needed to update registers, 0 if not 845 | gbt_channel_2_set_effect: ; a = effect, de = pointer to data 846 | 847 | ld hl,#gbt_ch2_jump_table$ 848 | ld c,a 849 | ld b,#0 850 | add hl,bc 851 | add hl,bc 852 | 853 | ld a,(hl+) 854 | ld h,(hl) 855 | ld l,a 856 | 857 | ld a,(de) ; load args 858 | inc de 859 | 860 | jp (hl) 861 | 862 | gbt_ch2_jump_table$: 863 | .DW gbt_ch2_pan$ 864 | .DW gbt_ch2_arpeggio$ 865 | .DW gbt_ch2_cut_note$ 866 | .DW gbt_ch1234_nop 867 | .DW gbt_ch2_sweep$ 868 | .DW gbt_ch1234_nop 869 | .DW gbt_ch1234_nop 870 | .DW gbt_ch1234_nop 871 | .DW gbt_ch1234_jump_pattern 872 | .DW gbt_ch1234_jump_position 873 | .DW gbt_ch1234_speed 874 | .DW gbt_ch1234_nop 875 | .DW gbt_ch1234_nop 876 | .DW gbt_ch1234_nop 877 | .DW gbt_ch1234_nop 878 | .DW gbt_ch2_NRx2_VolEnv$ 879 | 880 | gbt_ch2_pan$: 881 | and a,#0x22 882 | ld (gbt_pan+1),a 883 | xor a,a ; ret 0 884 | ret ; Should not update registers, only NR51 at end. 885 | 886 | gbt_ch2_arpeggio$: 887 | ld b,a ; b = params 888 | 889 | ld hl,#gbt_arpeggio_freq_index+1*3 890 | ld c,(hl) ; c = base index 891 | inc hl 892 | 893 | ld a,b 894 | swap a 895 | and a,#0x0F 896 | add a,c 897 | 898 | ld (hl+),a ; save first increment 899 | 900 | ld a,b 901 | and a,#0x0F 902 | add a,c 903 | 904 | ld (hl),a ; save second increment 905 | 906 | ld a,#1 907 | ld (gbt_arpeggio_enabled+1),a 908 | ld (gbt_arpeggio_tick+1),a 909 | 910 | ret ; ret 1 911 | 912 | gbt_ch2_cut_note$: 913 | ld (gbt_cut_note_tick+1),a 914 | xor a,a ; ret 0 915 | ret 916 | 917 | gbt_ch2_NRx2_VolEnv$: ; raw volumeEnv, VVVV APPP, bits 7-4 vol 918 | ld (gbt_vol+1),a ; bit 3 true = add, bits 2-0 wait period 919 | xor a,a ; ret 0 ; 0xF1 = max volume, sub 1 every 1 tick. 920 | ret ; 0x0A = min volume, add 1 every 2 ticks. 921 | 922 | gbt_ch2_sweep$: 923 | ld (gbt_sweep+1),a 924 | ld a,#2 925 | ld (gbt_arpeggio_enabled+1),a 926 | xor a,a ; ret 0 927 | ret 928 | 929 | ;------------------------------------------------------------------------------- 930 | ;---------------------------------- Channel 3 ---------------------------------- 931 | ;------------------------------------------------------------------------------- 932 | 933 | gbt_channel_3_handle:: ; de = info 934 | 935 | ld a,(gbt_channels_enabled) 936 | and a,#0x04 937 | jr nz,channel3_enabled$ 938 | 939 | ; Channel is disabled. Increment pointer as needed 940 | 941 | ld a,(de) 942 | inc de 943 | bit 7,a 944 | jr nz,ch3_more_bytes$ 945 | bit 6,a 946 | jr z,ch3_no_more_bytes_this_channel$ 947 | 948 | jr ch3_one_more_byte$ 949 | 950 | ch3_more_bytes$: 951 | 952 | ld a,(de) 953 | inc de 954 | bit 7,a 955 | jr z,ch3_no_more_bytes_this_channel$ 956 | 957 | ch3_one_more_byte$: 958 | 959 | inc de 960 | 961 | ch3_no_more_bytes_this_channel$: 962 | 963 | ret 964 | 965 | channel3_enabled$: 966 | 967 | ; Channel 3 is enabled 968 | 969 | ld a,(de) 970 | inc de 971 | 972 | bit 7,a 973 | jr nz,ch3_has_frequency$ 974 | 975 | ; Not frequency 976 | 977 | bit 6,a 978 | jr nz,ch3_effects$ 979 | 980 | ; Set volume or NOP 981 | 982 | bit 5,a 983 | jr nz,ch3_just_set_volume$ 984 | 985 | ; NOP 986 | 987 | ret 988 | 989 | ch3_just_set_volume$: 990 | 991 | ; Set volume 992 | 993 | swap a 994 | ld (gbt_vol+2),a 995 | 996 | jr refresh_channel3_regs_trig$ 997 | 998 | ch3_effects$: 999 | 1000 | ; Set effect 1001 | 1002 | and a,#0x0F ; a = effect 1003 | 1004 | call gbt_channel_3_set_effect 1005 | and a,a 1006 | ret z ; if 0, don't refresh registers 1007 | 1008 | jr refresh_channel3_regs_notrig$ 1009 | 1010 | ch3_has_frequency$: 1011 | 1012 | ; Has frequency 1013 | 1014 | and a,#0x7F 1015 | ld (gbt_arpeggio_freq_index+2*3),a 1016 | ; This destroys hl and a. Returns freq in bc 1017 | call _gbt_get_freq_from_index 1018 | 1019 | ld a,c 1020 | ld (gbt_freq+2*2+0),a 1021 | ld a,b 1022 | ld (gbt_freq+2*2+1),a ; Get frequency 1023 | 1024 | ld a,(de) 1025 | inc de 1026 | 1027 | bit 7,a 1028 | jr nz,ch3_freq_instr_and_effect$ 1029 | 1030 | ; Freq + Instr + Volume 1031 | 1032 | ld b,a ; save byte 1033 | 1034 | and a,#0x0F 1035 | ld (gbt_instr+2),a ; Instrument 1036 | 1037 | ld a,b ; restore byte 1038 | 1039 | and a,#0x30 ; a = volume 1040 | sla a 1041 | ld (gbt_vol+2),a 1042 | 1043 | jr refresh_channel3_regs_trig$ 1044 | 1045 | ch3_freq_instr_and_effect$: 1046 | 1047 | ; Freq + Instr + Effect 1048 | 1049 | ld b,a ; save byte 1050 | 1051 | and a,#0x0F 1052 | ld (gbt_instr+2),a ; Instrument 1053 | 1054 | ld a,b ; restore byte 1055 | 1056 | and a,#0x70 1057 | swap a ; a = effect (only 0-7 allowed here) 1058 | 1059 | call gbt_channel_3_set_effect 1060 | 1061 | ;jr .refresh_channel3_regs 1062 | 1063 | ; fall through! 1064 | 1065 | ; ----------------- 1066 | refresh_channel3_regs_trig$: 1067 | 1068 | channel3_refresh_registers_trig: 1069 | 1070 | xor a,a 1071 | ld (#.NR30),a ; disable 1072 | 1073 | ld a,(gbt_channel3_loaded_instrument) 1074 | ld b,a 1075 | ld a,(gbt_instr+2) 1076 | cp a,b 1077 | call nz,gbt_channel3_load_instrument ; a = instrument 1078 | 1079 | ld a,#0x80 1080 | ld (#.NR30),a ; enable 1081 | 1082 | xor a,a 1083 | ld (#.NR31),a 1084 | ld a,(gbt_vol+2) 1085 | ld (#.NR32),a 1086 | ld a,(gbt_freq+2*2+0) 1087 | ld (#.NR33),a 1088 | ld a,(gbt_freq+2*2+1) 1089 | or a,#0x80 ; start 1090 | ld (#.NR34),a 1091 | 1092 | ret 1093 | 1094 | refresh_channel3_regs_notrig$: 1095 | ; Don't Restart Waveform! 1096 | channel3_refresh_registers_notrig: 1097 | 1098 | ld a,(gbt_freq+2*2+0) 1099 | ld (#.NR33),a 1100 | ld a,(gbt_freq+2*2+1) 1101 | ld (#.NR34),a 1102 | 1103 | ret 1104 | ; ------------------ 1105 | 1106 | gbt_channel3_load_instrument: 1107 | 1108 | ld (gbt_channel3_loaded_instrument),a 1109 | 1110 | swap a ; a = a * 16 1111 | ld c,a 1112 | ld b,#0 1113 | ld hl,#gbt_wave 1114 | add hl,bc 1115 | 1116 | ld c,#0x30 1117 | ld b,#16 1118 | ch3_loop$: 1119 | ld a,(hl+) 1120 | ldh (c),a 1121 | inc c 1122 | dec b 1123 | jr nz,ch3_loop$ 1124 | 1125 | ret 1126 | 1127 | ; ------------------ 1128 | 1129 | channel3_update_effects: ; returns 1 in a if it is needed to update sound regs 1130 | 1131 | ; Cut note 1132 | ; -------- 1133 | 1134 | ld a,(gbt_cut_note_tick+2) 1135 | ld hl,#gbt_ticks_elapsed 1136 | cp a,(hl) 1137 | jp nz,ch3_dont_cut$ 1138 | 1139 | dec a ; a = 0xFF 1140 | ld (gbt_cut_note_tick+2),a ; disable cut note 1141 | 1142 | xor a,a ; vol = 0 1143 | ld (#.NR30),a ; disable 1144 | ld (#.NR32),a 1145 | ld a,#0x80 ; start 1146 | ld (#.NR34),a 1147 | 1148 | ch3_dont_cut$: 1149 | 1150 | ; Arpeggio or Sweep 1151 | ; -------- 1152 | 1153 | ld a,(gbt_arpeggio_enabled+2) 1154 | and a,a 1155 | ret z ; a is 0, return 0 1156 | 1157 | ; Check if Sweep or Arpeggio (5-6 cycles) 1158 | and a,#1 1159 | jp z,gbt_ch3_sweep_run$ 1160 | 1161 | ; If enabled arpeggio, handle it 1162 | 1163 | ld a,(gbt_arpeggio_tick+2) 1164 | and a,a 1165 | jr nz,ch3_not_tick_0$ 1166 | 1167 | ; Tick 0 - Set original frequency 1168 | 1169 | ld a,(gbt_arpeggio_freq_index+2*3+0) 1170 | 1171 | call _gbt_get_freq_from_index 1172 | 1173 | ld a,c 1174 | ld (gbt_freq+2*2+0),a 1175 | ld a,b 1176 | ld (gbt_freq+2*2+1),a ; Set frequency 1177 | 1178 | ld a,#1 1179 | ld (gbt_arpeggio_tick+2),a 1180 | 1181 | ret ; ret 1 1182 | 1183 | ch3_not_tick_0$: 1184 | 1185 | cp a,#1 1186 | jr nz,ch3_not_tick_1$ 1187 | 1188 | ; Tick 1 1189 | 1190 | ld a,(gbt_arpeggio_freq_index+2*3+1) 1191 | 1192 | call _gbt_get_freq_from_index 1193 | 1194 | ld a,c 1195 | ld (gbt_freq+2*2+0),a 1196 | ld a,b 1197 | ld (gbt_freq+2*2+1),a ; Set frequency 1198 | 1199 | ld a,#2 1200 | ld (gbt_arpeggio_tick+2),a 1201 | 1202 | dec a 1203 | ret ; ret 1 1204 | 1205 | ch3_not_tick_1$: 1206 | 1207 | ; Tick 2 1208 | 1209 | ld a,(gbt_arpeggio_freq_index+2*3+2) 1210 | 1211 | call _gbt_get_freq_from_index 1212 | 1213 | ld a,c 1214 | ld (gbt_freq+2*2+0),a 1215 | ld a,b 1216 | ld (gbt_freq+2*2+1),a ; Set frequency 1217 | 1218 | xor a,a 1219 | ld (gbt_arpeggio_tick+2),a 1220 | 1221 | inc a 1222 | ret ; ret 1 1223 | 1224 | gbt_ch3_sweep_run$: 1225 | 1226 | ; PortA Pitch Sweep 1227 | ; ----------- 1228 | ld hl,#(gbt_freq+2*2+0) 1229 | ld a,(gbt_sweep+2) 1230 | bit 7,a ; bit 7, if nz, sweep up. 1231 | jr z,gbt_ch3_sweep_up$ 1232 | 1233 | ; Sweep down - 1234 | sub a,#0x80 1235 | ld b,a 1236 | ld a,(hl) ; Get frequency small (gbt_freq+0*2+0) 1237 | sub a,b ; subtract b from a 1238 | ld (hl+),a ; Set frequency small (gbt_freq+0*2+0) 1239 | ld a,#1 1240 | jr c,gbt_ch3_sweep_dec$ 1241 | ret ; ret 1, update without trigger 1242 | ; Sweep down -- 1243 | gbt_ch3_sweep_dec$: 1244 | dec (hl) ; DEC frequency large (gbt_freq+0*2+1) 3cy 1245 | ld a,(hl) 1246 | inc a ; find if decremented past 0 to exactly 255 1247 | ret nz ; ret/update unless 0 1248 | ld (hl-),a ; fix frequency large 0x0 1249 | ld (hl),a ; fix frequency small 0x0 1250 | ld (gbt_arpeggio_enabled+2),a ; disable sweep 1251 | ret ; ret 0, no update 1252 | 1253 | ; Sweep up + 1254 | gbt_ch3_sweep_up$: 1255 | add a,(hl) ; add frequency small (gbt_freq+0*2+0) 1256 | ld (hl+),a ; Set frequency small (gbt_freq+0*2+0) 1257 | jr c,gbt_ch3_sweep_inc$ 1258 | ld a,#1 1259 | ret ; ret 1, update without trigger 1260 | ; Sweep up ++ 1261 | gbt_ch3_sweep_inc$: 1262 | inc (hl) ; inc frequency large (gbt_freq+0*2+1) 2cy 1263 | ld a,(hl-) 1264 | and a,#0x07 ; check if wrapped to 0x08 00001000 1265 | ret nz ; ret/update unless 0 1266 | ld (gbt_arpeggio_enabled+2),a ; disable sweep 1267 | ld (#.NR32),a ; vol = 0 1268 | ld a,#0x80 ; start 1269 | ld (#.NR34),a 1270 | ret ; ret 1, update without trigger 1271 | 1272 | ; ----------------- 1273 | 1274 | ; returns a = 1 if needed to update registers, 0 if not 1275 | gbt_channel_3_set_effect: ; a = effect, de = pointer to data 1276 | 1277 | ld hl,#gbt_ch3_jump_table$ 1278 | ld c,a 1279 | ld b,#0 1280 | add hl,bc 1281 | add hl,bc 1282 | 1283 | ld a,(hl+) 1284 | ld h,(hl) 1285 | ld l,a 1286 | 1287 | ld a,(de) ; load args 1288 | inc de 1289 | 1290 | jp (hl) 1291 | 1292 | gbt_ch3_jump_table$: 1293 | .DW gbt_ch3_pan$ 1294 | .DW gbt_ch3_arpeggio$ 1295 | .DW gbt_ch3_cut_note$ 1296 | .DW gbt_ch1234_nop 1297 | .DW gbt_ch3_sweep$ 1298 | .DW gbt_ch1234_nop 1299 | .DW gbt_ch1234_nop 1300 | .DW gbt_ch1234_nop 1301 | .DW gbt_ch1234_jump_pattern 1302 | .DW gbt_ch1234_jump_position 1303 | .DW gbt_ch1234_speed 1304 | .DW gbt_ch1234_nop 1305 | .DW gbt_ch1234_nop 1306 | .DW gbt_ch1234_nop 1307 | .DW gbt_ch1234_nop 1308 | .DW gbt_ch1234_nop 1309 | 1310 | gbt_ch3_pan$: 1311 | and a,#0x44 1312 | ld (gbt_pan+2),a 1313 | xor a,a ; ret 0 1314 | ret ; do not update registers, only NR51 at end. 1315 | 1316 | gbt_ch3_arpeggio$: 1317 | ld b,a ; b = params 1318 | 1319 | ld hl,#gbt_arpeggio_freq_index+2*3 1320 | ld c,(hl) ; c = base index 1321 | inc hl 1322 | 1323 | ld a,b 1324 | swap a 1325 | and a,#0x0F 1326 | add a,c 1327 | 1328 | ld (hl+),a ; save first increment 1329 | 1330 | ld a,b 1331 | and a,#0x0F 1332 | add a,c 1333 | 1334 | ld (hl),a ; save second increment 1335 | 1336 | ld a,#1 1337 | ld (gbt_arpeggio_enabled+2),a 1338 | ld (gbt_arpeggio_tick+2),a 1339 | 1340 | ret ; ret 1 1341 | 1342 | gbt_ch3_cut_note$: 1343 | ld (gbt_cut_note_tick+2),a 1344 | xor a,a ; ret 0 1345 | ret 1346 | 1347 | gbt_ch3_sweep$: 1348 | ld (gbt_sweep+2),a 1349 | ld a,#2 1350 | ld (gbt_arpeggio_enabled+2),a 1351 | xor a,a ; ret 0 1352 | ret 1353 | 1354 | ;------------------------------------------------------------------------------- 1355 | ;---------------------------------- Channel 4 ---------------------------------- 1356 | ;------------------------------------------------------------------------------- 1357 | 1358 | gbt_channel_4_handle:: ; de = info 1359 | 1360 | ld a,(gbt_channels_enabled) 1361 | and a,#0x08 1362 | jr nz,channel4_enabled$ 1363 | 1364 | ; Channel is disabled. Increment pointer as needed 1365 | 1366 | ld a,(de) 1367 | inc de 1368 | bit 7,a 1369 | jr nz,ch4_more_bytes$ 1370 | bit 6,a 1371 | jr z,ch4_no_more_bytes_this_channel$ 1372 | 1373 | jr ch4_one_more_byte$ 1374 | 1375 | ch4_more_bytes$: 1376 | 1377 | ld a,(de) 1378 | inc de 1379 | bit 7,a 1380 | jr z,ch4_no_more_bytes_this_channel$ 1381 | 1382 | ch4_one_more_byte$: 1383 | 1384 | inc de 1385 | 1386 | ch4_no_more_bytes_this_channel$: 1387 | 1388 | ret 1389 | 1390 | channel4_enabled$: 1391 | 1392 | ; Channel 4 is enabled 1393 | 1394 | ld a,(de) 1395 | inc de 1396 | 1397 | bit 7,a 1398 | jr nz,ch4_has_instrument$ 1399 | 1400 | ; Not instrument 1401 | 1402 | bit 6,a 1403 | jr nz,ch4_effects$ 1404 | 1405 | ; Set volume or NOP 1406 | 1407 | bit 5,a 1408 | jr nz,ch4_just_set_volume$ 1409 | 1410 | ; NOP 1411 | 1412 | ret 1413 | 1414 | ch4_just_set_volume$: 1415 | 1416 | ; Set volume 1417 | 1418 | and a,#0x0F 1419 | swap a 1420 | ; Preserve envelope data 1421 | ld b,a ; save byte 1422 | ld a,(gbt_vol+3) 1423 | and a,#0x0F ; mask envelope 1424 | or a,b 1425 | 1426 | ld (gbt_vol+3),a 1427 | 1428 | jr refresh_channel4_regs$ 1429 | 1430 | ch4_effects$: 1431 | 1432 | ; Set effect 1433 | 1434 | and a,#0x0F ; a = effect 1435 | 1436 | call gbt_channel_4_set_effect 1437 | and a,a 1438 | ret z ; if 0, don't refresh registers 1439 | 1440 | jr refresh_channel4_regs$ 1441 | 1442 | ch4_has_instrument$: 1443 | 1444 | ; Has instrument raw frequency data 1445 | 1446 | and a,#0x7F ; mask out bit 7 1447 | ld b,a 1448 | 1449 | ld a,(de) ; load next byte 1450 | inc de 1451 | ld c,a 1452 | rla 1453 | and a,#0x80 ; Mask only bit 7 1454 | or a,b ; Append noise bit 1455 | ld (gbt_instr+3),a 1456 | ld a,c ; restore byte2 1457 | bit 7,a 1458 | jr nz,ch4_instr_and_effect$ 1459 | 1460 | ; Instr + Volume 1461 | 1462 | and a,#0x0F ; a = volume 1463 | 1464 | swap a 1465 | ; Preserve envelope data 1466 | ld b,a ; save byte 1467 | ld a,(gbt_vol+3) 1468 | and a,#0x0F ; mask envelope 1469 | or a,b 1470 | 1471 | ld (gbt_vol+3),a 1472 | 1473 | jr refresh_channel4_regs$ 1474 | 1475 | ch4_instr_and_effect$: 1476 | 1477 | ; Instr + Effect 1478 | 1479 | and a,#0x0F ; a = effect 1480 | 1481 | call gbt_channel_4_set_effect 1482 | 1483 | ;jr ch4_refresh_channel4_regs$ 1484 | 1485 | refresh_channel4_regs$: 1486 | 1487 | ; fall through! 1488 | 1489 | ; ----------------- 1490 | 1491 | channel4_refresh_registers: 1492 | 1493 | xor a,a 1494 | ld (#.NR41),a 1495 | ld a,(gbt_vol+3) 1496 | ld (#.NR42),a 1497 | ld a,(gbt_instr+3) 1498 | ld (#.NR43),a 1499 | ld a,#0x80 ; start 1500 | ld (#.NR44),a 1501 | 1502 | ret 1503 | 1504 | ; ------------------ 1505 | 1506 | channel4_update_effects: ; returns 1 in a if it is needed to update sound regs 1507 | 1508 | ; Cut note 1509 | ; -------- 1510 | 1511 | ld a,(gbt_cut_note_tick+3) 1512 | ld hl,#gbt_ticks_elapsed 1513 | cp a,(hl) 1514 | jp nz,ch4_dont_cut$ 1515 | 1516 | dec a ; a = 0xFF 1517 | ld (gbt_cut_note_tick+3),a ; disable cut note 1518 | 1519 | xor a,a ; vol = 0 1520 | ld (#.NR42),a 1521 | ld a,#0x80 ; start 1522 | ld (#.NR44),a 1523 | 1524 | ch4_dont_cut$: 1525 | 1526 | xor a,a 1527 | ret ; a is 0, return 1528 | 1529 | ; ----------------- 1530 | 1531 | ; returns a = 1 if needed to update registers, 0 if not 1532 | gbt_channel_4_set_effect: ; a = effect, de = pointer to data 1533 | 1534 | ld hl,#gbt_ch4_jump_table$ 1535 | ld c,a 1536 | ld b,#0 1537 | add hl,bc 1538 | add hl,bc 1539 | 1540 | ld a,(hl+) 1541 | ld h,(hl) 1542 | ld l,a 1543 | 1544 | ld a,(de) ; load args 1545 | inc de 1546 | 1547 | jp (hl) 1548 | 1549 | gbt_ch4_jump_table$: 1550 | .DW gbt_ch4_pan$ 1551 | .DW gbt_ch1234_nop ; gbt_ch4_arpeggio 1552 | .DW gbt_ch4_cut_note$ 1553 | .DW gbt_ch1234_nop 1554 | .DW gbt_ch1234_nop 1555 | .DW gbt_ch1234_nop 1556 | .DW gbt_ch1234_nop 1557 | .DW gbt_ch1234_nop 1558 | .DW gbt_ch1234_jump_pattern 1559 | .DW gbt_ch1234_jump_position 1560 | .DW gbt_ch1234_speed 1561 | .DW gbt_ch1234_nop 1562 | .DW gbt_ch1234_nop 1563 | .DW gbt_ch1234_nop 1564 | .DW gbt_ch1234_nop 1565 | .DW gbt_ch4_NRx2_VolEnv$ 1566 | 1567 | gbt_ch4_pan$: 1568 | and a,#0x88 1569 | ld (gbt_pan+3),a 1570 | xor a,a ; ret 0 1571 | ret ; do not update registers, only NR51 at end. 1572 | 1573 | gbt_ch4_cut_note$: 1574 | ld (gbt_cut_note_tick+3),a 1575 | xor a,a ; ret 0 1576 | ret 1577 | 1578 | gbt_ch4_NRx2_VolEnv$: ; Raw data into volume, VVVV APPP, bits 4-7 vol 1579 | ld (gbt_vol+3),a ; bit 3 true = add, bits 0-2 wait period 1580 | xor a,a ; ret 0 ; 0xF1 = max volume, sub 1 every 1 tick. 1581 | ret ; 0x0A = min volume, add 1 every 2 ticks. 1582 | 1583 | ;------------------------------------------------------------------------------- 1584 | 1585 | ; Common effects go here: 1586 | 1587 | gbt_ch1234_nop: 1588 | xor a,a ;ret 0 1589 | ret 1590 | 1591 | gbt_ch1234_jump_pattern: 1592 | ld (gbt_current_pattern),a 1593 | xor a,a 1594 | ld (gbt_current_step),a 1595 | ld (gbt_have_to_stop_next_step),a ; clear stop flag 1596 | ld a,#1 1597 | ld (gbt_update_pattern_pointers),a 1598 | xor a,a ;ret 0 1599 | ret 1600 | 1601 | gbt_ch1234_jump_position: 1602 | ld (gbt_current_step),a 1603 | ld hl,#gbt_current_pattern 1604 | inc (hl) 1605 | 1606 | ; Check to see if jump puts us past end of song 1607 | ld a,(hl) 1608 | call gbt_get_pattern_ptr_banked 1609 | ld a,#1 ; tell gbt_player.s to do this next cycle 1610 | ld (gbt_update_pattern_pointers),a 1611 | xor a,a ;ret 0 1612 | ret 1613 | 1614 | gbt_ch1234_speed: 1615 | ld (gbt_speed),a 1616 | xor a,a 1617 | ld (gbt_ticks_elapsed),a 1618 | ret ;ret 0 1619 | 1620 | ;------------------------------------------------------------------------------- 1621 | 1622 | gbt_update_bank1:: 1623 | 1624 | ld de,#gbt_temp_play_data 1625 | 1626 | ; each function will return in de the pointer to next byte 1627 | 1628 | call gbt_channel_1_handle 1629 | 1630 | call gbt_channel_2_handle 1631 | 1632 | call gbt_channel_3_handle 1633 | 1634 | call gbt_channel_4_handle 1635 | 1636 | ; end of channel handling 1637 | 1638 | ld hl,#gbt_pan 1639 | ld a,(hl+) 1640 | or a,(hl) 1641 | inc hl 1642 | or a,(hl) 1643 | inc hl 1644 | or a,(hl) 1645 | ld (#.NR51),a ; handle panning... 1646 | 1647 | ret 1648 | 1649 | ;------------------------------------------------------------------------------- 1650 | 1651 | gbt_update_effects_bank1:: 1652 | 1653 | call channel1_update_effects 1654 | and a,a 1655 | call nz,channel1_refresh_registers_notrig 1656 | 1657 | call channel2_update_effects 1658 | and a,a 1659 | call nz,channel2_refresh_registers_notrig 1660 | 1661 | call channel3_update_effects 1662 | and a,a 1663 | call nz,channel3_refresh_registers_notrig 1664 | 1665 | call channel4_update_effects 1666 | and a,a 1667 | call nz,channel4_refresh_registers 1668 | 1669 | ret 1670 | 1671 | ;------------------------------------------------------------------------------- 1672 | --------------------------------------------------------------------------------