master 7583b5a4235f cached
113 files
71.7 KB
29.0k tokens
1 requests
Download .txt
Repository: DeerTears/GB-Studio-Community-Assets
Branch: master
Commit: 7583b5a4235f
Files: 113
Total size: 71.7 KB

Directory structure:
gitextract_xbofjviu/

├── .gitattributes
├── .gitignore
├── Backgrounds/
│   └── README.md
├── COMMUNITY_LINKS.md
├── CONTRIBUTING.md
├── Engine/
│   └── GBT Player Banks/
│       ├── Ember Triangle.s
│       └── README.md
├── Fonts/
│   └── README.md
├── LICENSE
├── Music/
│   ├── Action/
│   │   ├── Boss fight1.mod
│   │   ├── Boss fight2.mod
│   │   ├── Compression.mod
│   │   ├── Dancing and Infiltrating.mod
│   │   ├── Free OST 1 - Backstreets.mod
│   │   ├── Free OST 1 - Fighting.mod
│   │   ├── Joyous Takeoff.mod
│   │   ├── Monty's Overheating Spaceship.mod
│   │   ├── Serious Ping Pong Matches.mod
│   │   ├── Sneaking Around.mod
│   │   ├── Sugar Craze.mod
│   │   ├── Tape It Together.mod
│   │   └── Tense Boss Battle.mod
│   ├── Drumbeats/
│   │   ├── Backbeat Metal Drumming.mod
│   │   ├── Boots Cats.mod
│   │   ├── Breakbeat with Hats.mod
│   │   ├── Duck Tales Drumbeat.mod
│   │   ├── Halftime Metal Drumming.mod
│   │   ├── Kick Kick Kick Crash.mod
│   │   ├── Kick Kick Snare.mod
│   │   ├── Kick Stutter.mod
│   │   ├── Messy 90s Uptempo Hiphop.mod
│   │   ├── Supa-Hip Breakbeat.mod
│   │   └── Upbeat Metal Drumming.mod
│   ├── Exploration/
│   │   ├── Determined.mod
│   │   ├── Peppy Pop Song.mod
│   │   ├── Scrolling Text.mod
│   │   └── Twilight Drive.mod
│   ├── Jingles/
│   │   ├── Awkward Death.mod
│   │   ├── Battle Encounter.mod
│   │   ├── Battle Motif.mod
│   │   ├── Excited Suspense.mod
│   │   ├── Falling Asleep.mod
│   │   ├── Nursery Rhyme with pauses.mod
│   │   ├── Out of Energy Game Over.mod
│   │   ├── Pitfall Death.mod
│   │   ├── Radical Intro.mod
│   │   ├── Radical Victory.mod
│   │   ├── Rascal's Ditty.mod
│   │   ├── Short Lullaby with Key Modulation.mod
│   │   ├── Short SML2-Style Jingle.mod
│   │   ├── Silly Death.mod
│   │   ├── Slow death.mod
│   │   ├── Swing into Victory.mod
│   │   ├── The Sad Truth.mod
│   │   ├── Victory Fanfare.mod
│   │   └── Victory Lap.mod
│   ├── Menu Themes/
│   │   ├── Free OST 1 - Character Select.mod
│   │   ├── Free OST 1 - Ending Theme.mod
│   │   ├── Free OST 1 - Fanfare.mod
│   │   └── MBR Settings.mod
│   ├── National Anthems/
│   │   ├── France Intro.mod
│   │   ├── Germany Intro.mod
│   │   ├── Italy Intro.mod
│   │   ├── United Kingdom Intro.mod
│   │   └── United States of America Intro.mod
│   ├── Overworld/
│   │   ├── Darkstone.mod
│   │   ├── Darkstone_Remix.mod
│   │   ├── FridgeMusic.mod
│   │   ├── Great Melody 01.mod
│   │   ├── Great Melody02.mod
│   │   ├── In the Town.mod
│   │   ├── Little Tune 11.mod
│   │   ├── ParkMusic.mod
│   │   ├── Peppy Regal Overworld.mod
│   │   ├── The Gang's All Here.mod
│   │   ├── Villains of Hiphop.mod
│   │   └── my_streets2.mod
│   ├── Readme.md
│   ├── SFX/
│   │   ├── Alarm Clock.mod
│   │   ├── Alarm System.mod
│   │   ├── Clock.mod
│   │   ├── Clock2.mod
│   │   ├── EuroCop.mod
│   │   ├── Explosion1.mod
│   │   ├── Missile Alert.mod
│   │   ├── Nokia Tune.mod
│   │   ├── Phone Ring.mod
│   │   ├── Pickup_Coin.mod
│   │   ├── Powerup.mod
│   │   ├── Powerup2.mod
│   │   ├── Powerup3.mod
│   │   ├── Readme.md
│   │   ├── Squeal Door.mod
│   │   ├── Vibration Alarm.mod
│   │   ├── fast wind gust.mod
│   │   ├── harsh wind gust.mod
│   │   ├── menu no thanks.mod
│   │   ├── nuh-uh.mod
│   │   ├── odd open inventory.mod
│   │   ├── old telephone 1.mod
│   │   ├── racecar zoom.mod
│   │   └── smb3okay.mod
│   └── Spooky/
│       ├── Detective Intro.mod
│       └── Short Hauntings.mod
├── README.md
├── Scripts/
│   └── Camera/
│       ├── Screenscroll/
│       │   ├── screenscroll_scene_init.txt
│       │   └── screenscroll_trigger.txt
│       └── break camera from player.txt
├── Sprites/
│   ├── Animated/
│   │   └── README.md
│   └── Static/
│       ├── Cats/
│       │   └── README.md
│       └── README.md
├── Tilesets/
│   └── Credits.md
└── UI/
    └── README.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
# GitHub Language Detection
*.gbsproj linguist-language=JSON

# Normalize Line Endings to LineFeed
*.md text=auto
*.text text=auto
*.txt text=auto
*.xml text=auto
LICENSE text=auto

# LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.apk filter=lfs diff=lfs merge=lfs -text
*.app filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.docx filter=lfs diff=lfs merge=lfs -text
*.exe filter=lfs diff=lfs merge=lfs -text
*.mod filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.otf filter=lfs diff=lfs merge=lfs -text
*.pages filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.svg filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.xnb filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text


================================================
FILE: .gitignore
================================================
[Bb]uild/
*.bak
~*


================================================
FILE: Backgrounds/README.md
================================================
# Credits:

**Chris Maltby:**

- `stars.png`

**Ember/DeerTears:**

- `big_checkers.png`

**GumpyFunction:**

- `Cabin(Exterior).png`
- `Cabin(Interior).png`
- `Forest (day).png`
- `Forest (night).png`


================================================
FILE: COMMUNITY_LINKS.md
================================================
# Community Links

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.

## Free Software

Name | Author | Use | Website | From GB Community
---- | ------ | --- | ------- | ------
GylphBoy Swap | sododev | Hacks non-Latin Glyphs into GBS | https://sododev.itch.io/glyphboyswap | Yes
Gameboy Sprite Exporter | momeka | Counts and Manages Unique 8x8 Background Tiles | https://momeka.itch.io/gameboy-tools | Yes
RotSprite | Xenowhirl | Rotates pixel art | http://info.sonicretro.org/RotSprite | No
Ft2Mod | James Park | Converts Famitracker text export into OpenMPT paste data | https://gb.jamespark.ninja/ft2mod/ | Yes
MaxBgCalc | James Park | Calculates X or Y image dimensions to help you maximize your background size | https://gb.jamespark.ninja/maxbgcalc/ | Yes
GbBgTxt | James Park | Generates images with text using your GB Studio font assets | https://gb.jamespark.ninja/gbbgtxt/ | Yes
MIDI2MOD | James Park | Convert MIDI files to .mod compatible tracker output you can copy and paste! | https://gb.jamespark.ninja/midi2mod/ | Yes
2BitCharactersGenerator | 0x72 | Generate (human) Sprites for GBC with multiple Frames from slider-inputs (CC0 Licence) | https://0x72.itch.io/2bitcharactergenerator | ?

## Project Templates

Name | Author | Latest Compatible Version | Link
---- | ------ | -------------- | ----
Actor Switching | digthezig | 1.1.0 | https://digthezig.itch.io/switching
3D Maze | jojoruteon | 1.2.1 | https://jojoruteon.itch.io/3dmaze-gbstudio
Battle System | manugamesdev | 1.1.0 | https://manugamesdev.itch.io/battle-system
Dungeon Crawler Template | TOXWORKS | 1.2.0 | https://toxworks.itch.io/dungeon-crawler-in-gb
Real Time Combat | manugamesdev | 1.1.0 | https://manugamesdev.itch.io/real-time-combat
Menu/Inventory System | TOXWORKS | 1.1.0 | https://toxworks.itch.io/menu-system-in-gb
Portal Gun System for GB Studio | TOXWORKS | 1.2.0 | https://toxworks.itch.io/portal-gun-system-in-gb
Sododev Text Input | SodoDev | 2.0.0 | https://sododev.itch.io/sododev-text-input
Text Input | TOXWORKS | 1.1.0 | https://toxworks.itch.io/text-input-system-in-gb
Text Entry Template | Setsune Wave | 2.0.0 | https://setsune.itch.io/textinputgbs2
Jumping for Other Actors (Platformer) | Bumbiss | 2.0.0 | https://bumbiss.itch.io/jumping-for-actors-in-gb-studio

## Free Asset Packs

Name | Author | Contains | Link
---- | ------ | ---- | ----
Retro Horror Asset Pack | catladycreates | Animated Actors, Tilesets, Tiled Working File | https://catladycreates.itch.io/horror-assest-gb-studio
GB Studio Fence Tiles | cobgoblin | Tilesets | https://cobgoblin.itch.io/gbfences
Gio Ex's GB studio Resource Pack | Gio-Ex | UI Elements, Background, Actor, | https://gio-ex.itch.io/gb-studio-resource-pack
Where's Naldo + Extra | moshuo | Tileset | https://moshuo.itch.io/gbstudio-sprites
GB Studio Tiles - Woodland | pixelmech | Tilemap, Tiled Working File | https://pixelmech.itch.io/gb-studio-tiles
sprite-pack-1 | pollorenzo | Animated Actors, UI Elements | https://pollorenzo.itch.io/sprite-pack-1
Fairy Fountain.mod | Skittles | Free song | https://cdn.discordapp.com/attachments/554713715942096916/864917924707696640/Fairy_Fountain_by_Skittles.mod
GB Studio Sprites 16x16 | rekkimaru | Actors | https://rekkimaru.itch.io/gb-studio-sprites-16x16
GB Studio Dungeon Tileset | rekkimaru | Tilemap, Actors, Tiled Working File | https://rekkimaru.itch.io/gb-studio-dungeon-tileset-8x8
DIALOG BOXES + MORE FOR GB STUDIO | wyatt199x | UI Elements, Default Font Alterations | https://wyatt199x.itch.io/dialog-boxes-more-for-gb-studio
Route1 Song.mod | copperine | Free song | https://cdn.discordapp.com/attachments/570924885291827200/759130941532274708/route1.mod
GB Studio Sprites | rustedparadigm | Animated Actors | https://rustedparadigm.itch.io/gbstudio-sprites
GB Studio Tilesets | rustedparadigm | Tilesets | https://rustedparadigm.itch.io/gbstudio-tilesets
GB Studio Spartan Templates | rustedparadigm | Spartan Working Files | https://rustedparadigm.itch.io/gbs-spartan-templates
GameBoy Assets and Sprites | materialfuture | Outdoor foliage, rocks, Actor, Tileset | https://materialfuture.itch.io/gameboy-assets

## Free Fonts

### .ttf
Name | Author | Licence | Link
---- | ------ | ------- | ----
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

### .png
Name | Author | Licence | Link
---- | ------ | ------- | ----
Fonts for GB Studio | jeremyoduber | none, see .zip Readme | https://jeremyoduber.itch.io/fonts-for-gb-studio


================================================
FILE: CONTRIBUTING.md
================================================
# How-To Contribute

## #1 Filenames

Make sure the file you're adding has a unique and distinctive name.
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.

**Good filename examples:**

- "short_cactus_1.png"
- "short_cactus_2.png"
- "husky_howling.mod"
- "wolf_howl_1.mod"
- "jenna's_house.png"

**Bad filename examples:**

- "ascii.png"
- "plant27.png"
- "background2.png
- "template.mod"
- "mysong.mod"

## #2 Filetypes

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!

## #3 The Github Process

1. Have a Github account with all your files ready to be added

2. Make a fork of this repository

3. Upload your own files to your own fork (using the appropriate folders too)

4. Edit the README.md of the folder that has your new files to include the following formatting:

     **Your Name:**

      ``Your file`` - And a little blurb describing it

5. Make a pull request across forks. Make sure the page is showing `[my repository] <== [your fork]`

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.



================================================
FILE: Engine/GBT Player Banks/Ember Triangle.s
================================================
;-------------------------------------------------------------------------------
;
; GBT Player v2.2.0
;
; SPDX-License-Identifier: MIT
;
; Copyright (c) 2009-2020, Antonio Niño Díaz <antonio_nd@outlook.com>
;
;-------------------------------------------------------------------------------

	.NR10 = 0xFF10
	.NR11 = 0xFF11
	.NR12 = 0xFF12
	.NR13 = 0xFF13
	.NR14 = 0xFF14
	.NR21 = 0xFF16
	.NR22 = 0xFF17
	.NR23 = 0xFF18
	.NR24 = 0xFF19
	.NR30 = 0xFF1A
	.NR31 = 0xFF1B
	.NR32 = 0xFF1C
	.NR33 = 0xFF1D
	.NR34 = 0xFF1E
	.NR41 = 0xFF20
	.NR42 = 0xFF21
	.NR43 = 0xFF22
	.NR44 = 0xFF23
	.NR50 = 0xFF24
	.NR51 = 0xFF25
	.NR52 = 0xFF26

;-------------------------------------------------------------------------------

	.area	_CODE_1

;-------------------------------------------------------------------------------

gbt_wave: ; 8 sounds
	.DB	0xA5,0xD7,0xC9,0xE1,0xBC,0x9A,0x76,0x31,0x0C,0xBA,0xDE,0x60,0x1B,0xCA,0x03,0x93 ; random :P
	.DB	0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11 ; ember triangle
	.DB	0xFD,0xEC,0xDB,0xCA,0xB9,0xA8,0x97,0x86,0x79,0x68,0x57,0x46,0x35,0x24,0x13,0x02 ; little up-downs
	.DB	0xDE,0xFE,0xDC,0xBA,0x9A,0xA9,0x87,0x77,0x88,0x87,0x65,0x56,0x54,0x32,0x10,0x12
	.DB	0xAB,0xCD,0xEF,0xED,0xCB,0xA0,0x12,0x3E,0xDC,0xBA,0xBC,0xDE,0xFE,0xDC,0x32,0x10 ; triangular broken
	.DB	0xFF,0xEE,0xDD,0xCC,0xBB,0xAA,0x99,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11,0x00 ; triangular
	.DB	0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; square 50%
	.DB	0x79,0xBC,0xDE,0xEF,0xFF,0xEE,0xDC,0xB9,0x75,0x43,0x21,0x10,0x00,0x11,0x23,0x45 ; sine

; gbt_noise: ; Moved to Mod2GBT for better note range & performance
	; 7 bit, can adjust with pitch C D# F# A# C
	;.DB	0x5F,0x4E,0x3E,0x2F,0x2E,0x2C,0x1F,0x0F
	; 15 bit
	;.DB	0x64,0x54,0x44,0x24,0x00
	;.DB	0x67,0x56,0x46

gbt_frequencies:
	.DW	  44,  156,  262,  363,  457,  547,  631,  710,  786,  854,  923,  986
	.DW	1046, 1102, 1155, 1205, 1253, 1297, 1339, 1379, 1417, 1452, 1486, 1517
	.DW	1546, 1575, 1602, 1627, 1650, 1673, 1694, 1714, 1732, 1750, 1767, 1783
	.DW	1798, 1812, 1825, 1837, 1849, 1860, 1871, 1881, 1890, 1899, 1907, 1915
	.DW	1923, 1930, 1936, 1943, 1949, 1954, 1959, 1964, 1969, 1974, 1978, 1982
	.DW	1985, 1988, 1992, 1995, 1998, 2001, 2004, 2006, 2009, 2011, 2013, 2015

;-------------------------------------------------------------------------------

_gbt_get_freq_from_index: ; a = index, bc = returned freq
	ld	hl,#gbt_frequencies
	ld	c,a
	ld	b,#0
	add	hl,bc
	add	hl,bc
	ld	c,(hl)
	inc	hl
	ld	b,(hl)
	ret

;-------------------------------------------------------------------------------
;---------------------------------- Channel 1 ----------------------------------
;-------------------------------------------------------------------------------

gbt_channel_1_handle:: ; de = info

	ld	a,(gbt_channels_enabled)
	and	a,#0x01
	jr	nz,channel1_enabled$

	; Channel is disabled. Increment pointer as needed

	ld	a,(de)
	inc	de
	bit	7,a
	jr	nz,ch1_more_bytes$
	bit	6,a
	jr	z,ch1_no_more_bytes_this_channel$

	jr	ch1_one_more_byte$

ch1_more_bytes$:

	ld	a,(de)
	inc	de
	bit	7,a
	jr	z,ch1_no_more_bytes_this_channel$

ch1_one_more_byte$:

	inc	de

ch1_no_more_bytes_this_channel$:

	ret

channel1_enabled$:

	; Channel 1 is enabled

	ld	a,(de)
	inc	de

	bit	7,a
	jr	nz,ch1_has_frequency$

	; Not frequency

	bit	6,a
	jr	nz,ch1_instr_effects$

	; Set volume or NOP

	bit	5,a
	jr	nz,ch1_just_set_volume$

	; NOP

	ret

ch1_just_set_volume$:

	; Set volume

	and	a,#0x0F
	swap	a
	; Preserve envelope data
	ld	b,a			; save byte
	ld	a,(gbt_vol+0)
	and	a,#0x0F		; mask envelope
	or	a,b

	ld	(gbt_vol+0),a

	jr	refresh_channel1_regs_trig$

ch1_instr_effects$:

	; Set instrument and effect

	ld	b,a ; save byte

	and	a,#0x30
	sla	a
	sla	a
	ld	(gbt_instr+0),a ; Instrument

	ld	a,b ; restore byte

	and	a,#0x0F ; a = effect

	call	gbt_channel_1_set_effect

	and a,a
	ret	z ; if 0, don't refresh registers
	jr	refresh_channel1_regs_notrig$

ch1_has_frequency$:

	; Has frequency

	and	a,#0x7F
	ld	(gbt_arpeggio_freq_index+0*3),a
	; This destroys hl and a. Returns freq in bc
	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+0*2+0),a
	ld	a,b
	ld	(gbt_freq+0*2+1),a ; Get frequency

	ld	a,(de)
	inc	de

	bit	7,a
	jr	nz,ch1_freq_instr_and_effect$

	; Freq + Instr + Volume

	ld	b,a ; save byte

	and	a,#0x30
	sla	a
	sla	a
	ld	(gbt_instr+0),a ; Instrument

	ld	a,b ; restore byte

	and	a,#0x0F ; a = volume

	swap	a
	; Preserve envelope data
	ld	b,a			; save byte
	ld	a,(gbt_vol+0)
	and	a,#0x0F		; mask envelope
	or	a,b

	ld	(gbt_vol+0),a

	jr	refresh_channel1_regs_trig$

ch1_freq_instr_and_effect$:

	; Freq + Instr + Effect

	ld	b,a ; save byte

	and	a,#0x30
	sla	a
	sla	a
	ld	(gbt_instr+0),a ; Instrument

	ld	a,b ; restore byte

	and	a,#0x0F ; a = effect

	call	gbt_channel_1_set_effect

	;jr	refresh_channel1_regs_trig$


	; fall through!

; -----------------

refresh_channel1_regs_trig$:

channel1_refresh_registers_trig:

	xor	a,a
	ld	(#.NR10),a
	ld	a,(gbt_instr+0)
	ld	(#.NR11),a
	ld	a,(gbt_vol+0)
	ld	(#.NR12),a
	ld	a,(gbt_freq+0*2+0)
	ld	(#.NR13),a
	ld	a,(gbt_freq+0*2+1)
	or	a,#0x80 ; start
	ld	(#.NR14),a

	ret

refresh_channel1_regs_notrig$:

channel1_refresh_registers_notrig:

	xor	a,a
	ld	(#.NR10),a
	ld	a,(gbt_instr+0)
	ld	(#.NR11),a
	ld	a,(gbt_freq+0*2+0)
	ld	(#.NR13),a
	ld	a,(gbt_freq+0*2+1)
	ld	(#.NR14),a

	ret

; ------------------

channel1_update_effects: ; returns 1 in a if it is needed to update sound registers

	; Cut note
	; --------

	ld	a,(gbt_cut_note_tick+0)
	ld	hl,#gbt_ticks_elapsed
	cp	a,(hl)
	jp	nz,ch1_dont_cut$

	dec	a ; a = 0xFF
	ld	(gbt_cut_note_tick+0),a ; disable cut note

	xor	a,a ; vol = 0
	ld	(#.NR12),a
	ld	a,#0x80 ; start
	ld	(#.NR14),a

ch1_dont_cut$:

	; Arpeggio or Sweep
	; --------

	ld	a,(gbt_arpeggio_enabled+0)
	and	a,a
	ret	z ; a is 0, return 0

	; Check if Sweep or Arpeggio (4-5 cycles)
	and a,#1
	jr z,gbt_ch1_sweep_run$

	; If enabled arpeggio, handle it

	ld	a,(gbt_arpeggio_tick+0)
	and	a,a
	jr	nz,ch1_not_tick_0$

	; Tick 0 - Set original frequency

	ld	a,(gbt_arpeggio_freq_index+0*3+0)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+0*2+0),a
	ld	a,b
	ld	(gbt_freq+0*2+1),a ; Set frequency

	ld	a,#1
	ld	(gbt_arpeggio_tick+0),a

	ret ; ret 1

ch1_not_tick_0$:

	cp	a,#1
	jr	nz,ch1_not_tick_1$

	; Tick 1

	ld	a,(gbt_arpeggio_freq_index+0*3+1)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+0*2+0),a
	ld	a,b
	ld	(gbt_freq+0*2+1),a ; Set frequency

	ld	a,#2
	ld	(gbt_arpeggio_tick+0),a

	dec	a
	ret ; ret 1

ch1_not_tick_1$:

	; Tick 2

	ld	a,(gbt_arpeggio_freq_index+0*3+2)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+0*2+0),a
	ld	a,b
	ld	(gbt_freq+0*2+1),a ; Set frequency

	xor	a,a
	ld	(gbt_arpeggio_tick+0),a

	inc	a
	ret ; ret 1

gbt_ch1_sweep_run$:

	; PortA Pitch Sweep
	; -----------
	ld	hl,#(gbt_freq+0*2+0)
	ld	a,(gbt_sweep+0)
	bit 7,a ; bit 7, if nz, sweep up.
	jr  z,gbt_ch1_sweep_up$

	; Sweep down -
	sub	a,#0x80
	ld	b,a
	ld	a,(hl)		; Get frequency small (gbt_freq+0*2+0)
	sub	a,b			; subtract b from a
	ld	(hl+),a		; Set frequency small (gbt_freq+0*2+0)
	ld	a,#1
	jr	c,gbt_ch1_sweep_dec$
	ret				; ret 1, update without trigger
	; Sweep down --
gbt_ch1_sweep_dec$:
	dec	(hl)		; DEC frequency large (gbt_freq+0*2+1) 3cy
	ld	a,(hl)
	inc a			; find if decremented past 0 to exactly 255
	ret	nz			; ret/update unless 0
	ld	(hl-),a		; fix frequency large 0x0
	ld	(hl),a		; fix frequency small 0x0
	ld	(gbt_arpeggio_enabled+0),a	; disable sweep
	ret				; ret 0, no update

	; Sweep up +
gbt_ch1_sweep_up$:
	add	a,(hl)		; add frequency small (gbt_freq+0*2+0)
	ld	(hl+),a		; Set frequency small (gbt_freq+0*2+0)
	jr	c,gbt_ch1_sweep_inc$
	ld	a,#1
	ret				; ret 1, update without trigger
	; Sweep up ++
gbt_ch1_sweep_inc$:
	inc	(hl)		; inc frequency large (gbt_freq+0*2+1) 2cy
	ld	a,(hl-)
	and	a,#0x07		; check if wrapped to 0x08 00001000
	ret	nz			; ret/update unless 0
	ld	(gbt_arpeggio_enabled+0),a	; disable sweep
	ld	(#.NR12),a ; vol = 0
	ld	a,#0x80 ; start
	ld	(#.NR14),a
	ret 			; ret 0x80, update without trigger

; -----------------

; returns a = 1 if needed to update registers, 0 if not
gbt_channel_1_set_effect: ; a = effect, de = pointer to data.

	ld	hl,#gbt_ch1_jump_table$
	ld	c,a
	ld	b,#0
	add	hl,bc
	add	hl,bc

	ld	a,(hl+)
	ld	h,(hl)
	ld	l,a

	ld	a,(de) ; load args
	inc	de

	jp	(hl)

gbt_ch1_jump_table$:
	.DW	gbt_ch1_pan$
	.DW	gbt_ch1_arpeggio$
	.DW	gbt_ch1_cut_note$
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1_sweep$
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_jump_pattern
	.DW	gbt_ch1234_jump_position
	.DW	gbt_ch1234_speed
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1_NRx2_VolEnv$

gbt_ch1_pan$:
	and	a,#0x11
	ld	(gbt_pan+0),a
	xor	a,a
	ret ; ret 0 do not update registers, only NR51 at end.

gbt_ch1_arpeggio$:
	ld	b,a ; b = params

	ld	hl,#gbt_arpeggio_freq_index+0*3
	ld	c,(hl) ; c = base index
	inc	hl

	ld	a,b
	swap	a
	and	a,#0x0F
	add	a,c

	ld	(hl+),a ; save first increment

	ld	a,b
	and	a,#0x0F
	add	a,c

	ld	(hl),a ; save second increment

	ld	a,#1
	ld	(gbt_arpeggio_enabled+0),a
	ld	(gbt_arpeggio_tick+0),a

	ret ; ret 1

gbt_ch1_cut_note$:
	ld	(gbt_cut_note_tick+0),a
	xor	a,a ; ret 0
	ret

gbt_ch1_NRx2_VolEnv$:	; Raw data into volume, VVVV APPP, bits 4-7 vol
	ld	(gbt_vol+0),a	; bit 3 true = add, bits 0-2 wait period 
	xor	a,a	; ret 0		; 0xF1 = max volume, sub 1 every 1 tick.
	ret					; 0x0A = min volume, add 1 every 2 ticks.

gbt_ch1_sweep$:
	ld 	(gbt_sweep+0),a
	ld	a,#2
	ld	(gbt_arpeggio_enabled+0),a
	xor	a,a	; ret 0
	ret

;-------------------------------------------------------------------------------
;---------------------------------- Channel 2 ----------------------------------
;-------------------------------------------------------------------------------

gbt_channel_2_handle:: ; de = info

	ld	a,(gbt_channels_enabled)
	and	a,#0x02
	jr	nz,channel2_enabled$

	; Channel is disabled. Increment pointer as needed

	ld	a,(de)
	inc	de
	bit	7,a
	jr	nz,ch2_more_bytes$
	bit	6,a
	jr	z,ch2_no_more_bytes_this_channel$

	jr	ch2_one_more_byte$

ch2_more_bytes$:

	ld	a,(de)
	inc	de
	bit	7,a
	jr	z,ch2_no_more_bytes_this_channel$

ch2_one_more_byte$:

	inc	de

ch2_no_more_bytes_this_channel$:

	ret

channel2_enabled$:

	; Channel 2 is enabled

	ld	a,(de)
	inc	de

	bit	7,a
	jr	nz,ch2_has_frequency$

	; Not frequency

	bit	6,a
	jr	nz,ch2_instr_effects$

	; Set volume or NOP

	bit	5,a
	jr	nz,ch2_just_set_volume$

	; NOP

	ret

ch2_just_set_volume$:

	; Set volume

	and	a,#0x0F
	swap	a
	; Preserve envelope data
	ld	b,a			; save byte
	ld	a,(gbt_vol+1)
	and	a,#0x0F		; mask envelope
	or	a,b

	ld	(gbt_vol+1),a

	jr	refresh_channel2_regs_trig$

ch2_instr_effects$:

	; Set instrument and effect

	ld	b,a ; save byte

	and	a,#0x30
	sla	a
	sla	a
	ld	(gbt_instr+1),a ; Instrument

	ld	a,b ; restore byte

	and	a,#0x0F ; a = effect

	call	gbt_channel_2_set_effect

	and a,a
	ret	z ; if 0, don't refresh registers
	jr	refresh_channel2_regs_notrig$

ch2_has_frequency$:

	; Has frequency

	and	a,#0x7F
	ld	(gbt_arpeggio_freq_index+1*3),a
	; This destroys hl and a. Returns freq in bc
	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+1*2+0),a
	ld	a,b
	ld	(gbt_freq+1*2+1),a ; Get frequency

	ld	a,(de)
	inc	de

	bit	7,a
	jr	nz,ch2_freq_instr_and_effect$

	; Freq + Instr + Volume

	ld	b,a ; save byte

	and	a,#0x30
	sla	a
	sla	a
	ld	(gbt_instr+1),a ; Instrument

	ld	a,b ; restore byte

	and	a,#0x0F ; a = volume

	swap	a
	; Preserve envelope data
	ld	b,a			; save byte
	ld	a,(gbt_vol+1)
	and	a,#0x0F		; mask envelope
	or	a,b

	ld	(gbt_vol+1),a

	jr	refresh_channel2_regs_trig$

ch2_freq_instr_and_effect$:

	; Freq + Instr + Effect

	ld	b,a ; save byte

	and	a,#0x30
	sla	a
	sla	a
	ld	(gbt_instr+1),a ; Instrument

	ld	a,b ; restore byte

	and	a,#0x0F ; a = effect

	call	gbt_channel_2_set_effect

	;jr	.refresh_channel2_regs_trig

	; fall through!

; -----------------

refresh_channel2_regs_trig$:

channel2_refresh_registers_trig:

	ld	a,(gbt_instr+1)
	ld	(#.NR21),a
	ld	a,(gbt_vol+1)
	ld	(#.NR22),a
	ld	a,(gbt_freq+1*2+0)
	ld	(#.NR23),a
	ld	a,(gbt_freq+1*2+1)
	or	a,#0x80 ; start
	ld	(#.NR24),a

	ret

refresh_channel2_regs_notrig$:

channel2_refresh_registers_notrig:

	ld	a,(gbt_instr+1)
	ld	(#.NR21),a
	ld	a,(gbt_freq+1*2+0)
	ld	(#.NR23),a
	ld	a,(gbt_freq+1*2+1)
	ld	(#.NR24),a

	ret

; ------------------

channel2_update_effects: ; returns 1 in a if it is needed to update sound regs

	; Cut note
	; --------

	ld	a,(gbt_cut_note_tick+1)
	ld	hl,#gbt_ticks_elapsed
	cp	a,(hl)
	jp	nz,ch2_dont_cut$

	dec	a ; a = 0xFF
	ld	(gbt_cut_note_tick+1),a ; disable cut note

	xor	a,a ; vol = 0
	ld	(#.NR22),a
	ld	a,#0x80 ; start
	ld	(#.NR24),a

ch2_dont_cut$:

	; Arpeggio or Sweep
	; --------

	ld	a,(gbt_arpeggio_enabled+1)
	and	a,a
	ret	z ; a is 0, return 0

	; Check if Sweep or Arpeggio (5-6 cycles)
	and a,#1
	jr z,gbt_ch2_sweep_run$
	; If enabled arpeggio, handle it

	ld	a,(gbt_arpeggio_tick+1)
	and	a,a
	jr	nz,ch2_not_tick_0$

	; Tick 0 - Set original frequency

	ld	a,(gbt_arpeggio_freq_index+1*3+0)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+1*2+0),a
	ld	a,b
	ld	(gbt_freq+1*2+1),a ; Set frequency

	ld	a,#1
	ld	(gbt_arpeggio_tick+1),a

	ret ; ret 1

ch2_not_tick_0$:

	cp	a,#1
	jr	nz,ch2_not_tick_1$

	; Tick 1

	ld	a,(gbt_arpeggio_freq_index+1*3+1)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+1*2+0),a
	ld	a,b
	ld	(gbt_freq+1*2+1),a ; Set frequency

	ld	a,#2
	ld	(gbt_arpeggio_tick+1),a

	dec	a
	ret ; ret 1

ch2_not_tick_1$:

	; Tick 2

	ld	a,(gbt_arpeggio_freq_index+1*3+2)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+1*2+0),a
	ld	a,b
	ld	(gbt_freq+1*2+1),a ; Set frequency

	xor	a,a
	ld	(gbt_arpeggio_tick+1),a

	inc	a
	ret ; ret 1

gbt_ch2_sweep_run$:

	; PortA Pitch Sweep
	; -----------
	ld	hl,#(gbt_freq+1*2+0)
	ld	a,(gbt_sweep+1)
	bit 7,a ; bit 7, if nz, sweep up.
	jr  z,gbt_ch2_sweep_up$

	; Sweep down -
	sub	a,#0x80
	ld	b,a
	ld	a,(hl)		; Get frequency small (gbt_freq+0*2+0)
	sub	a,b			; subtract b from a
	ld	(hl+),a		; Set frequency small (gbt_freq+0*2+0)
	ld	a,#1
	jr	c,gbt_ch2_sweep_dec$
	ret				; ret 1, update without trigger
	; Sweep down --
gbt_ch2_sweep_dec$:
	dec	(hl)		; DEC frequency large (gbt_freq+0*2+1) 3cy
	ld	a,(hl)
	inc a			; find if decremented past 0 to exactly 255
	ret	nz			; ret/update unless 0
	ld	(hl-),a		; fix frequency large 0x0
	ld	(hl),a		; fix frequency small 0x0
	ld	(gbt_arpeggio_enabled+1),a	; disable sweep
	ret				; ret 0, no update

	; Sweep up +
gbt_ch2_sweep_up$:
	add	a,(hl)		; add frequency small (gbt_freq+0*2+0)
	ld	(hl+),a		; Set frequency small (gbt_freq+0*2+0)
	jr	c,gbt_ch2_sweep_inc$
	ld	a,#1
	ret				; ret 1, update without trigger
	; Sweep up ++
gbt_ch2_sweep_inc$:
	inc	(hl)		; inc frequency large (gbt_freq+0*2+1) 2cy
	ld	a,(hl-)
	and	a,#0x07		; check if wrapped to 0x08 00001000
	ret nz			; ret/update unless 0
	ld	(gbt_arpeggio_enabled+1),a	; disable sweep
	ld	(#.NR22),a ; vol = 0
	ld	a,#0x80 ; start
	ld	(#.NR24),a
	ret 			; ret 0x80, update without trigger

; -----------------

; returns a = 1 if needed to update registers, 0 if not
gbt_channel_2_set_effect: ; a = effect, de = pointer to data

	ld	hl,#gbt_ch2_jump_table$
	ld	c,a
	ld	b,#0
	add	hl,bc
	add	hl,bc

	ld	a,(hl+)
	ld	h,(hl)
	ld	l,a

	ld	a,(de) ; load args
	inc	de

	jp	(hl)

gbt_ch2_jump_table$:
	.DW	gbt_ch2_pan$
	.DW	gbt_ch2_arpeggio$
	.DW	gbt_ch2_cut_note$
	.DW	gbt_ch1234_nop
	.DW	gbt_ch2_sweep$
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_jump_pattern
	.DW	gbt_ch1234_jump_position
	.DW	gbt_ch1234_speed
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch2_NRx2_VolEnv$

gbt_ch2_pan$:
	and	a,#0x22
	ld	(gbt_pan+1),a
	xor	a,a ; ret 0
	ret ; Should not update registers, only NR51 at end.

gbt_ch2_arpeggio$:
	ld	b,a ; b = params

	ld	hl,#gbt_arpeggio_freq_index+1*3
	ld	c,(hl) ; c = base index
	inc	hl

	ld	a,b
	swap	a
	and	a,#0x0F
	add	a,c

	ld	(hl+),a ; save first increment

	ld	a,b
	and	a,#0x0F
	add	a,c

	ld	(hl),a ; save second increment

	ld	a,#1
	ld	(gbt_arpeggio_enabled+1),a
	ld	(gbt_arpeggio_tick+1),a

	ret ; ret 1

gbt_ch2_cut_note$:
	ld	(gbt_cut_note_tick+1),a
	xor	a,a ; ret 0
	ret

gbt_ch2_NRx2_VolEnv$:	; raw volumeEnv, VVVV APPP, bits 7-4 vol
	ld	(gbt_vol+1),a	; bit 3 true = add, bits 2-0 wait period 
	xor	a,a	; ret 0		; 0xF1 = max volume, sub 1 every 1 tick.
	ret					; 0x0A = min volume, add 1 every 2 ticks.

gbt_ch2_sweep$:
	ld 	(gbt_sweep+1),a
	ld	a,#2
	ld	(gbt_arpeggio_enabled+1),a
	xor	a,a	; ret 0
	ret

;-------------------------------------------------------------------------------
;---------------------------------- Channel 3 ----------------------------------
;-------------------------------------------------------------------------------

gbt_channel_3_handle:: ; de = info

	ld	a,(gbt_channels_enabled)
	and	a,#0x04
	jr	nz,channel3_enabled$

	; Channel is disabled. Increment pointer as needed

	ld	a,(de)
	inc	de
	bit	7,a
	jr	nz,ch3_more_bytes$
	bit	6,a
	jr	z,ch3_no_more_bytes_this_channel$

	jr	ch3_one_more_byte$

ch3_more_bytes$:

	ld	a,(de)
	inc	de
	bit	7,a
	jr	z,ch3_no_more_bytes_this_channel$

ch3_one_more_byte$:

	inc	de

ch3_no_more_bytes_this_channel$:

	ret

channel3_enabled$:

	; Channel 3 is enabled

	ld	a,(de)
	inc	de

	bit	7,a
	jr	nz,ch3_has_frequency$

	; Not frequency

	bit	6,a
	jr	nz,ch3_effects$

	; Set volume or NOP

	bit	5,a
	jr	nz,ch3_just_set_volume$

	; NOP

	ret

ch3_just_set_volume$:

	; Set volume

	swap	a
	ld	(gbt_vol+2),a

	jr	refresh_channel3_regs_trig$

ch3_effects$:

	; Set effect

	and	a,#0x0F ; a = effect

	call	gbt_channel_3_set_effect
	and	a,a
	ret	z ; if 0, don't refresh registers

	jr	refresh_channel3_regs_notrig$

ch3_has_frequency$:

	; Has frequency

	and	a,#0x7F
	ld	(gbt_arpeggio_freq_index+2*3),a
	; This destroys hl and a. Returns freq in bc
	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+2*2+0),a
	ld	a,b
	ld	(gbt_freq+2*2+1),a ; Get frequency

	ld	a,(de)
	inc	de

	bit	7,a
	jr	nz,ch3_freq_instr_and_effect$

	; Freq + Instr + Volume

	ld	b,a ; save byte

	and	a,#0x0F
	ld	(gbt_instr+2),a ; Instrument

	ld	a,b ; restore byte

	and	a,#0x30 ; a = volume
	sla	a
	ld	(gbt_vol+2),a

	jr	refresh_channel3_regs_trig$

ch3_freq_instr_and_effect$:

	; Freq + Instr + Effect

	ld	b,a ; save byte

	and	a,#0x0F
	ld	(gbt_instr+2),a ; Instrument

	ld	a,b ; restore byte

	and	a,#0x70
	swap	a	; a = effect (only 0-7 allowed here)

	call	gbt_channel_3_set_effect

	;jr	.refresh_channel3_regs

	; fall through!

; -----------------
refresh_channel3_regs_trig$:

channel3_refresh_registers_trig:

	xor	a,a
	ld	(#.NR30),a ; disable

	ld	a,(gbt_channel3_loaded_instrument)
	ld	b,a
	ld	a,(gbt_instr+2)
	cp	a,b
	call	nz,gbt_channel3_load_instrument ; a = instrument

	ld	a,#0x80
	ld	(#.NR30),a ; enable

	xor	a,a
	ld	(#.NR31),a
	ld	a,(gbt_vol+2)
	ld	(#.NR32),a
	ld	a,(gbt_freq+2*2+0)
	ld	(#.NR33),a
	ld	a,(gbt_freq+2*2+1)
	or	a,#0x80 ; start
	ld	(#.NR34),a

	ret

refresh_channel3_regs_notrig$:
	; Don't Restart Waveform!
channel3_refresh_registers_notrig:

	ld	a,(gbt_freq+2*2+0)
	ld	(#.NR33),a
	ld	a,(gbt_freq+2*2+1)
	ld	(#.NR34),a

	ret
; ------------------

gbt_channel3_load_instrument:

	ld	(gbt_channel3_loaded_instrument),a

	swap	a ; a = a * 16
	ld	c,a
	ld	b,#0
	ld	hl,#gbt_wave
	add	hl,bc

	ld	c,#0x30
	ld	b,#16
ch3_loop$:
	ld	a,(hl+)
	ldh	(c),a
	inc	c
	dec	b
	jr	nz,ch3_loop$

	ret

; ------------------

channel3_update_effects: ; returns 1 in a if it is needed to update sound regs

	; Cut note
	; --------

	ld	a,(gbt_cut_note_tick+2)
	ld	hl,#gbt_ticks_elapsed
	cp	a,(hl)
	jp	nz,ch3_dont_cut$

	dec	a ; a = 0xFF
	ld	(gbt_cut_note_tick+2),a ; disable cut note

	xor	a,a ; vol = 0
	ld	(#.NR30),a ; disable
	ld	(#.NR32),a
	ld	a,#0x80 ; start
	ld	(#.NR34),a

ch3_dont_cut$:

	; Arpeggio or Sweep
	; --------

	ld	a,(gbt_arpeggio_enabled+2)
	and	a,a
	ret	z ; a is 0, return 0

	; Check if Sweep or Arpeggio (5-6 cycles)
	and a,#1
	jp z,gbt_ch3_sweep_run$

	; If enabled arpeggio, handle it

	ld	a,(gbt_arpeggio_tick+2)
	and	a,a
	jr	nz,ch3_not_tick_0$

	; Tick 0 - Set original frequency

	ld	a,(gbt_arpeggio_freq_index+2*3+0)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+2*2+0),a
	ld	a,b
	ld	(gbt_freq+2*2+1),a ; Set frequency

	ld	a,#1
	ld	(gbt_arpeggio_tick+2),a

	ret ; ret 1

ch3_not_tick_0$:

	cp	a,#1
	jr	nz,ch3_not_tick_1$

	; Tick 1

	ld	a,(gbt_arpeggio_freq_index+2*3+1)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+2*2+0),a
	ld	a,b
	ld	(gbt_freq+2*2+1),a ; Set frequency

	ld	a,#2
	ld	(gbt_arpeggio_tick+2),a

	dec	a
	ret ; ret 1

ch3_not_tick_1$:

	; Tick 2

	ld	a,(gbt_arpeggio_freq_index+2*3+2)

	call	_gbt_get_freq_from_index

	ld	a,c
	ld	(gbt_freq+2*2+0),a
	ld	a,b
	ld	(gbt_freq+2*2+1),a ; Set frequency

	xor	a,a
	ld	(gbt_arpeggio_tick+2),a

	inc	a
	ret ; ret 1

gbt_ch3_sweep_run$:

	; PortA Pitch Sweep
	; -----------
	ld	hl,#(gbt_freq+2*2+0)
	ld	a,(gbt_sweep+2)
	bit 7,a ; bit 7, if nz, sweep up.
	jr  z,gbt_ch3_sweep_up$

	; Sweep down -
	sub	a,#0x80
	ld	b,a
	ld	a,(hl)		; Get frequency small (gbt_freq+0*2+0)
	sub	a,b			; subtract b from a
	ld	(hl+),a		; Set frequency small (gbt_freq+0*2+0)
	ld	a,#1
	jr	c,gbt_ch3_sweep_dec$
	ret				; ret 1, update without trigger
	; Sweep down --
gbt_ch3_sweep_dec$:
	dec	(hl)		; DEC frequency large (gbt_freq+0*2+1) 3cy
	ld	a,(hl)
	inc a			; find if decremented past 0 to exactly 255
	ret	nz			; ret/update unless 0
	ld	(hl-),a		; fix frequency large 0x0
	ld	(hl),a		; fix frequency small 0x0
	ld	(gbt_arpeggio_enabled+2),a	; disable sweep
	ret				; ret 0, no update

	; Sweep up +
gbt_ch3_sweep_up$:
	add	a,(hl)		; add frequency small (gbt_freq+0*2+0)
	ld	(hl+),a		; Set frequency small (gbt_freq+0*2+0)
	jr	c,gbt_ch3_sweep_inc$
	ld	a,#1
	ret				; ret 1, update without trigger
	; Sweep up ++
gbt_ch3_sweep_inc$:
	inc	(hl)		; inc frequency large (gbt_freq+0*2+1) 2cy
	ld	a,(hl-)
	and	a,#0x07		; check if wrapped to 0x08 00001000
	ret	nz			; ret/update unless 0
	ld	(gbt_arpeggio_enabled+2),a	; disable sweep
	ld	(#.NR32),a ; vol = 0
	ld	a,#0x80 ; start
	ld	(#.NR34),a
	ret 			; ret 1, update without trigger

; -----------------

; returns a = 1 if needed to update registers, 0 if not
gbt_channel_3_set_effect: ; a = effect, de = pointer to data

	ld	hl,#gbt_ch3_jump_table$
	ld	c,a
	ld	b,#0
	add	hl,bc
	add	hl,bc

	ld	a,(hl+)
	ld	h,(hl)
	ld	l,a

	ld	a,(de) ; load args
	inc	de

	jp	(hl)

gbt_ch3_jump_table$:
	.DW	gbt_ch3_pan$
	.DW	gbt_ch3_arpeggio$
	.DW	gbt_ch3_cut_note$
	.DW	gbt_ch1234_nop
	.DW	gbt_ch3_sweep$
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_jump_pattern
	.DW	gbt_ch1234_jump_position
	.DW	gbt_ch1234_speed
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop

gbt_ch3_pan$:
	and	a,#0x44
	ld	(gbt_pan+2),a
	xor	a,a ; ret 0
	ret ; do not update registers, only NR51 at end.

gbt_ch3_arpeggio$:
	ld	b,a ; b = params

	ld	hl,#gbt_arpeggio_freq_index+2*3
	ld	c,(hl) ; c = base index
	inc	hl

	ld	a,b
	swap	a
	and	a,#0x0F
	add	a,c

	ld	(hl+),a ; save first increment

	ld	a,b
	and	a,#0x0F
	add	a,c

	ld	(hl),a ; save second increment

	ld	a,#1
	ld	(gbt_arpeggio_enabled+2),a
	ld	(gbt_arpeggio_tick+2),a

	ret ; ret 1

gbt_ch3_cut_note$:
	ld	(gbt_cut_note_tick+2),a
	xor	a,a ; ret 0
	ret

gbt_ch3_sweep$:
	ld 	(gbt_sweep+2),a
	ld	a,#2
	ld	(gbt_arpeggio_enabled+2),a
	xor	a,a	; ret 0
	ret

;-------------------------------------------------------------------------------
;---------------------------------- Channel 4 ----------------------------------
;-------------------------------------------------------------------------------

gbt_channel_4_handle:: ; de = info

	ld	a,(gbt_channels_enabled)
	and	a,#0x08
	jr	nz,channel4_enabled$

	; Channel is disabled. Increment pointer as needed

	ld	a,(de)
	inc	de
	bit	7,a
	jr	nz,ch4_more_bytes$
	bit	6,a
	jr	z,ch4_no_more_bytes_this_channel$

	jr	ch4_one_more_byte$

ch4_more_bytes$:

	ld	a,(de)
	inc	de
	bit	7,a
	jr	z,ch4_no_more_bytes_this_channel$

ch4_one_more_byte$:

	inc	de

ch4_no_more_bytes_this_channel$:

	ret

channel4_enabled$:

	; Channel 4 is enabled

	ld	a,(de)
	inc	de

	bit	7,a
	jr	nz,ch4_has_instrument$

	; Not instrument

	bit	6,a
	jr	nz,ch4_effects$

	; Set volume or NOP

	bit	5,a
	jr	nz,ch4_just_set_volume$

	; NOP

	ret

ch4_just_set_volume$:

	; Set volume

	and	a,#0x0F
	swap	a
	; Preserve envelope data
	ld	b,a			; save byte
	ld	a,(gbt_vol+3)
	and	a,#0x0F		; mask envelope
	or	a,b

	ld	(gbt_vol+3),a

	jr	refresh_channel4_regs$

ch4_effects$:

	; Set effect

	and	a,#0x0F ; a = effect

	call	gbt_channel_4_set_effect
	and	a,a
	ret	z ; if 0, don't refresh registers

	jr	refresh_channel4_regs$

ch4_has_instrument$:

	; Has instrument raw frequency data

	and	a,#0x7F ; mask out bit 7
	ld	b,a

	ld	a,(de)	; load next byte
	inc	de
	ld	c,a
	rla
	and a,#0x80	; Mask only bit 7
	or	a,b		; Append noise bit
	ld	(gbt_instr+3),a
	ld	a,c		; restore byte2
	bit	7,a
	jr	nz,ch4_instr_and_effect$

	; Instr + Volume

	and	a,#0x0F ; a = volume

	swap	a
	; Preserve envelope data
	ld	b,a			; save byte
	ld	a,(gbt_vol+3)
	and	a,#0x0F		; mask envelope
	or	a,b

	ld	(gbt_vol+3),a

	jr	refresh_channel4_regs$

ch4_instr_and_effect$:

	; Instr + Effect

	and	a,#0x0F ; a = effect

	call	gbt_channel_4_set_effect

	;jr	ch4_refresh_channel4_regs$

refresh_channel4_regs$:

	; fall through!

; -----------------

channel4_refresh_registers:

	xor	a,a
	ld	(#.NR41),a
	ld	a,(gbt_vol+3)
	ld	(#.NR42),a
	ld	a,(gbt_instr+3)
	ld	(#.NR43),a
	ld	a,#0x80 ; start
	ld	(#.NR44),a

	ret

; ------------------

channel4_update_effects: ; returns 1 in a if it is needed to update sound regs

	; Cut note
	; --------

	ld	a,(gbt_cut_note_tick+3)
	ld	hl,#gbt_ticks_elapsed
	cp	a,(hl)
	jp	nz,ch4_dont_cut$

	dec	a ; a = 0xFF
	ld	(gbt_cut_note_tick+3),a ; disable cut note

	xor	a,a ; vol = 0
	ld	(#.NR42),a
	ld	a,#0x80 ; start
	ld	(#.NR44),a

ch4_dont_cut$:

	xor	a,a
	ret ; a is 0, return

; -----------------

; returns a = 1 if needed to update registers, 0 if not
gbt_channel_4_set_effect: ; a = effect, de = pointer to data

	ld	hl,#gbt_ch4_jump_table$
	ld	c,a
	ld	b,#0
	add	hl,bc
	add	hl,bc

	ld	a,(hl+)
	ld	h,(hl)
	ld	l,a

	ld	a,(de) ; load args
	inc	de

	jp	(hl)

gbt_ch4_jump_table$:
	.DW	gbt_ch4_pan$
	.DW	gbt_ch1234_nop ; gbt_ch4_arpeggio
	.DW	gbt_ch4_cut_note$
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_jump_pattern
	.DW	gbt_ch1234_jump_position
	.DW	gbt_ch1234_speed
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch1234_nop
	.DW	gbt_ch4_NRx2_VolEnv$

gbt_ch4_pan$:
	and	a,#0x88
	ld	(gbt_pan+3),a
	xor	a,a ; ret 0
	ret ; do not update registers, only NR51 at end.

gbt_ch4_cut_note$:
	ld	(gbt_cut_note_tick+3),a
	xor	a,a ; ret 0
	ret

gbt_ch4_NRx2_VolEnv$:	; Raw data into volume, VVVV APPP, bits 4-7 vol
	ld	(gbt_vol+3),a	; bit 3 true = add, bits 0-2 wait period 
	xor	a,a	; ret 0		; 0xF1 = max volume, sub 1 every 1 tick.
	ret					; 0x0A = min volume, add 1 every 2 ticks.

;-------------------------------------------------------------------------------

; Common effects go here:

gbt_ch1234_nop:
	xor	a,a ;ret 0
	ret

gbt_ch1234_jump_pattern:
	ld	(gbt_current_pattern),a
	xor	a,a
	ld	(gbt_current_step),a
	ld	(gbt_have_to_stop_next_step),a ; clear stop flag
	ld	a,#1
	ld	(gbt_update_pattern_pointers),a
	xor	a,a ;ret 0
	ret

gbt_ch1234_jump_position:
	ld	(gbt_current_step),a
	ld	hl,#gbt_current_pattern
	inc	(hl)

	; Check to see if jump puts us past end of song
	ld	a,(hl)
	call	gbt_get_pattern_ptr_banked
	ld	a,#1 ; tell gbt_player.s to do this next cycle
	ld	(gbt_update_pattern_pointers),a
	xor	a,a ;ret 0
	ret

gbt_ch1234_speed:
	ld	(gbt_speed),a
	xor	a,a
	ld	(gbt_ticks_elapsed),a
	ret ;ret 0

;-------------------------------------------------------------------------------

gbt_update_bank1::

	ld	de,#gbt_temp_play_data

	; each function will return in de the pointer to next byte

	call	gbt_channel_1_handle

	call	gbt_channel_2_handle

	call	gbt_channel_3_handle

	call	gbt_channel_4_handle

	; end of channel handling

	ld	hl,#gbt_pan
	ld	a,(hl+)
	or	a,(hl)
	inc	hl
	or	a,(hl)
	inc hl
	or	a,(hl)
	ld	(#.NR51),a ; handle panning...

	ret

;-------------------------------------------------------------------------------

gbt_update_effects_bank1::

	call	channel1_update_effects
	and	a,a
	call	nz,channel1_refresh_registers_notrig

	call	channel2_update_effects
	and	a,a
	call	nz,channel2_refresh_registers_notrig

	call	channel3_update_effects
	and	a,a
	call	nz,channel3_refresh_registers_notrig

	call	channel4_update_effects
	and	a,a
	call	nz,channel4_refresh_registers

	ret

;-------------------------------------------------------------------------------


================================================
FILE: Engine/GBT Player Banks/README.md
================================================
# Credits

**Ember:**

- `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.

## How to alter GBT Player Banks for Channel 3

[It is highly recomended you read the music documentation before continuing.](https://gbstudio.dev/docs/music)

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.

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.

Each line contains 32 nibbles joined together in groups of 2. Each nibble represents the amplitude of a sample from 0 to F.

**Example:**  
```
gbt_wave: ; unofficial edit
	.DB	0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; square wave
	.DB	0x79,0xBC,0xDE,0xEF,0xFF,0xEE,0xDC,0xB9,0x75,0x43,0x21,0x10,0x00,0x11,0x23,0x45 ; sine wave
	.DB	0xFF,0xEE,0xDD,0xCC,0xBB,0xAA,0x99,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11,0x00 ; sawtooth
	.DB	0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11 ; triangle
	.DB 0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,0x12,0x34,0x45,0x56,0x78,0x9A,0xBC,0xDE ; double-speed triangle
```

**Example**: 0xFF represents two samples of maximum amplitude. One set to `F` amplitude, the other set to `F` amplitude.  
**Example**: 0x00 represents two samples of minimum amplitude. One set to `0` amplitude, the other set to `0` amplitude.  
**Example**: 0x0F represents two samples of mixed amplitude. One set to `0` amplitude, the other set to `F` amplitude.  

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.

Here's a new waveform that can not be found in GBT Player by default:  
```
gbt_wave: ; unofficial edit
	.DB	0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11 ; triangle wave
```

Replacing one of the instruments with the above code will change the corrosponding instrument to your new waveform.


================================================
FILE: Fonts/README.md
================================================
# Credits:

**TommysezSoWhat:**

- `d20_ascii.png`: Modified character set to include a D20 outline and single-character representations of the numbers 10-20.

**Chris Maltby:**

- `default ascii.png`: The default character set that comes with GB Studio.

**krümel:**

- `Kirby's Adventure Ability Help`
- `Love Story and Theremin`
- `Multiboot Menu (GBA)`
- `Trolls on Treasure Island`
- `Zero Wing`

**DigiDuncan:**

- `hex.png`: A debugging tool to help you find the location of special characters on the sheet.
- `Gothic`: A rough conversion of the MS Gothic font, with some liberties taken for the format. Also included, single characters for 10-20.

**Anima/Animaloser/SodoDev:**

- `modifiedfinalfantasylegends.png`: Modified Final Fantasy Legends font.
- `thinrpg.png`: Thin font. For easy reading.

**LoftyAu:**

- `spongebob.png`: A Spongebob-esque GB font.

**Paige Ashlynn:**

- `DotGothic8.png`: A slim font adapted from Kokiabe/Fontworks Inc.'s DotGothic16.

**KizulEmeraldfire**

- `ascii_thick.png`: A bold font. (Dark characters on a light background.)
- `ascii_thick_inverted.png`: A bold font. (Light characters on a dark background.)
- `ascii_thick_italic.png`: A bold font, italicized... albeit rather lazily. (Dark characters on a light background.)
- `ascii_thick_italic_inverted.png`: A bold font, italicized... albeit rather lazily. (Light characters on a dark background.)

**MOL:**

- `Commodore 64 ASCII.png`: A rip of the Commodore 64 ASCII files
- `Commodore 64 ASCII - Dark.png`: A dark version of the Commodore 64 ASCII files

**Santiago Crespo:**
- `ACM-VGA.png`: A bold font, based on the [Chromatic Research MPACT 2 VGA BIOS font](https://int10h.org/oldschool-pc-fonts/fontlist/font?acm_vga_8x8)
- `CompaqThin.png`: A thin font, based on a [custom DOS font made by Compaq](https://int10h.org/oldschool-pc-fonts/fontlist/font?compaqthin_8x8)



================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2019 Ember Bland

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: Music/Action/Boss fight1.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:d08be31164c5e73b962ba8c2748c6a5845701a3ca2f1457af2e67f3501cb0c1e
size 82160


================================================
FILE: Music/Action/Boss fight2.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:08e1f5c1b643b617fc309926403a47f55b0b6dffc5ef2b1f7faf0cc40f1c09e1
size 87280


================================================
FILE: Music/Action/Compression.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:4946292612932fc1f11133d929fba0db564bb966f362620da468cf0607621a96
size 82160


================================================
FILE: Music/Action/Dancing and Infiltrating.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:2a45a3981fdde41bbda055d1a07fdca811133d454b432d48fa5b5b0ea9cf3814
size 74992


================================================
FILE: Music/Action/Free OST 1 - Backstreets.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:aa957d46f07436fade5d5be667c878fee3bc385ffa960c11450e3682ba4d5299
size 73968


================================================
FILE: Music/Action/Free OST 1 - Fighting.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:602de66e3f12b49928a78c69a12b46fb67cd33c0f39eab723a0abd07117c2ffe
size 74992


================================================
FILE: Music/Action/Joyous Takeoff.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:74f5abd0476049851469c7c30e98cfa6d90e2694c0d944ba5dccda92cf66eebd
size 81136


================================================
FILE: Music/Action/Monty's Overheating Spaceship.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:051e0e766076ba29979abbeb9c912eaeedeeef91fbee7a4bfde4345ef89a5554
size 77040


================================================
FILE: Music/Action/Serious Ping Pong Matches.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:e112bf2c026fc30ddd0f5183cbcf260d6eb33fbcd7ee58bbb984bf2f19fcc0df
size 11516


================================================
FILE: Music/Action/Sneaking Around.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:e2c180dcc8529aeb897641573c8fa458f7b242582ffc5ee2ad1d12c01cd82674
size 72944


================================================
FILE: Music/Action/Sugar Craze.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:d1cde65c34a78307f4de76eb821c2a14f2133a95e94d0b499a3624343cd37f2f
size 76016


================================================
FILE: Music/Action/Tape It Together.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:d1eeb3b20e40b79d0c806caee62fdb95dae0acba1006d351dd407d2e928f5c9d
size 7972


================================================
FILE: Music/Action/Tense Boss Battle.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:1cdc33dc93acf05ad18274715e920b8d60be633464a215c52960c97affe18aa9
size 82160


================================================
FILE: Music/Drumbeats/Backbeat Metal Drumming.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:208fec4efed2c5007b2514bd883d1d6a674ac3acedbb36f30f461cd5ba5c0dd4
size 69872


================================================
FILE: Music/Drumbeats/Boots Cats.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:a66adaeaa731b8d4773ac4cd2d3c23ed30105bc6fdc7859a9df41161009ab816
size 69872


================================================
FILE: Music/Drumbeats/Breakbeat with Hats.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:4b1f2f10a99a1fbc1736db8915dd9883cdc012a8c844f0367266981b4e178bb5
size 69872


================================================
FILE: Music/Drumbeats/Duck Tales Drumbeat.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:540c17b8f0e7eba3dc3d2016d98dc093ec2b0bc01f2c80d27d09d7b735c2c23d
size 69872


================================================
FILE: Music/Drumbeats/Halftime Metal Drumming.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:661b29ffc2ed54f38246c3a03df8eddfe74ee0571afeb60fb59985ee1622ff09
size 69872


================================================
FILE: Music/Drumbeats/Kick Kick Kick Crash.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:b591d788670ac9e33d2d58543e2df8f2b4b464e5d98a7f26451802c709abdb46
size 69872


================================================
FILE: Music/Drumbeats/Kick Kick Snare.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:56da221f4ecbf702148b9741798735f38c9c5d37382e1d9b2e86c028fa28ec5b
size 69872


================================================
FILE: Music/Drumbeats/Kick Stutter.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:4903dd242fc19bf47b4c9417bda8047a015bcc68e82f7b89568f97cf434cfe62
size 69872


================================================
FILE: Music/Drumbeats/Messy 90s Uptempo Hiphop.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:3325179be3cf95b572af4c10ab9754b5c99ce3aa7447bfb79fd613dbe74307b0
size 69872


================================================
FILE: Music/Drumbeats/Supa-Hip Breakbeat.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:5345b47de34b4a75fb1505ac66bfbbf7b29d9775aa5221a59a73513a31e10c9e
size 69872


================================================
FILE: Music/Drumbeats/Upbeat Metal Drumming.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:b3ccf41358acc18b3a99e690bf6fc90ad76e0e4dfc93c50ec603ba41346afa88
size 69872


================================================
FILE: Music/Exploration/Determined.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:f26dacec33a4598096d154603e656f2a42fe02f9a03102c6284d836c47bf2201
size 77040


================================================
FILE: Music/Exploration/Peppy Pop Song.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:84cfe8cfcc9c0216b9038e8f40b2aad5b7d134a690fc6deb4356d241349bef01
size 82160


================================================
FILE: Music/Exploration/Scrolling Text.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:6400445f903c756145157353c6b778edb8f7ce0209b5b7be45ef540fbca34650
size 79088


================================================
FILE: Music/Exploration/Twilight Drive.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:98376c5ad78d15d70171127b150eace848789e2c32d9cfec3fb1b7a68f66e355
size 78064


================================================
FILE: Music/Jingles/Awkward Death.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:ed8420034b62907d0e70e440ef333faddb700d80363a2ee5e974b836d13ab072
size 72944


================================================
FILE: Music/Jingles/Battle Encounter.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:5966293203fab049a675e54dddf6271352e8e0123406f8e53c7b90134178fac7
size 69872


================================================
FILE: Music/Jingles/Battle Motif.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:d402e1f6778804558cf315874160d7a66ffd73c35b25b2740fdb3a7687ee4b66
size 73968


================================================
FILE: Music/Jingles/Excited Suspense.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:30cd67a56d592c1f33c9c6fc01e8bf780baeebba98e88f8a6c2f54f2aa333102
size 69872


================================================
FILE: Music/Jingles/Falling Asleep.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:b106e161292cb638a0ff3425c10702f853f70f634eccf56aed2e2da6bb87567f
size 69872


================================================
FILE: Music/Jingles/Nursery Rhyme with pauses.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:c2c1b751150d6c842fca1c2a9ec465fa0d5f36f197eac4b6f72038fe7de10348
size 76016


================================================
FILE: Music/Jingles/Out of Energy Game Over.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:a1e197301d636c2dc60a2978ad2d0af394c3f98770bad84dff12cbe52289b03d
size 69872


================================================
FILE: Music/Jingles/Pitfall Death.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:1deeac81f9f6993701f47bce3105b79277f051fa7f602d19fb7e34909f29a911
size 69872


================================================
FILE: Music/Jingles/Radical Intro.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:4c7830fd24e04e46361da7fbda92d579ab17d5a506ffa4e14ed849c1bbdd73ec
size 70896


================================================
FILE: Music/Jingles/Radical Victory.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:02b2b7b91feeab55bed9874bfbc2bac68683c60da03583a090f9bc187fc605ff
size 69872


================================================
FILE: Music/Jingles/Rascal's Ditty.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:104dce932a6e236b5ec0b9f12f03b4945aab41dbc3b472260b70ab28cbde7e7e
size 78064


================================================
FILE: Music/Jingles/Short Lullaby with Key Modulation.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:3fc87c55c261dd7aa73bb64f43244b27aa2a9f78d40c4e06d7f80378a03679ca
size 74992


================================================
FILE: Music/Jingles/Short SML2-Style Jingle.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:c0b75ff5210183100f120bee790daf31ff7651b5b3b35318afe37a332addb0b3
size 70896


================================================
FILE: Music/Jingles/Silly Death.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:3ce62c85756300125faa2d19dfa2c3e7c9dc2114d0e8dccf1fb7f598ef0e81f9
size 69872


================================================
FILE: Music/Jingles/Slow death.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:02790e392331c5ffa6543c8ed788688a525c13641974c2a6d4f36d51e3d6d539
size 69872


================================================
FILE: Music/Jingles/Swing into Victory.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:cfe6f756382e9ccc4caea6a59cf74a168bb62b39f0a9b7e2a89f6b6b4120c09d
size 69872


================================================
FILE: Music/Jingles/The Sad Truth.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:eb6be515ddbb38cabea188f0b49bd4b3c885eacad93a2ad788393777622b17c1
size 69872


================================================
FILE: Music/Jingles/Victory Fanfare.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:8b31e90949094b57e97e7e4acb135b1bf9807fb07fc6132ff322a1e975591f5e
size 69872


================================================
FILE: Music/Jingles/Victory Lap.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:1e9a3f4930c1a476fce7ad864e71c5bb259b57bf5e2956f20f30a217efe97b56
size 71920


================================================
FILE: Music/Menu Themes/Free OST 1 - Character Select.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:f3a0482f6c0edb63faeddd02da9fe503729757bf06135640212ac38281deaa66
size 78064


================================================
FILE: Music/Menu Themes/Free OST 1 - Ending Theme.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:e2b41e1f5123fcc569bf00cb52cfe8f66615f66b9529dea76669f46ef8ed6af8
size 82160


================================================
FILE: Music/Menu Themes/Free OST 1 - Fanfare.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:8c6aecbf3c4ffb22aa9dd23d6cf10bcfac2bb8ecbccc0d86671a700e10e1a79f
size 73968


================================================
FILE: Music/Menu Themes/MBR Settings.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:7763cc258d2a7f4cfb32687377337e7cd295f9f15c52499fb66ce492bde2fbe9
size 5228


================================================
FILE: Music/National Anthems/France Intro.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:987c556425958f9cc753e612b838a7c95327777310a8ac66ec5d2d910552609e
size 70896


================================================
FILE: Music/National Anthems/Germany Intro.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:3e2baf77e00ab2b44c206f4d7f88fc6cdccd370f50774032d2e23ff186598c93
size 70896


================================================
FILE: Music/National Anthems/Italy Intro.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:ec975e00337901a37c19870139bbe266d2ad7ab146958ec6f43e163ea334710c
size 70896


================================================
FILE: Music/National Anthems/United Kingdom Intro.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:54aa56460895b352ab13bbdd521303ceff21697411305db3a20dc8d3d0b0855d
size 70896


================================================
FILE: Music/National Anthems/United States of America Intro.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:d3713cfead15af00bb61b3b007116658dc17791692a25f9a84cf567bc864f42e
size 71920


================================================
FILE: Music/Overworld/Darkstone.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:a0d14531ae6348ec2a149b2284ee970b9e4f428ad3ed0c23fd4d00faf0498779
size 7484


================================================
FILE: Music/Overworld/Darkstone_Remix.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:a3266c7b9712faa744f978f8b4725475c9071b2869089abe968d6f02d4f07243
size 58378


================================================
FILE: Music/Overworld/FridgeMusic.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:622038cad3ba4cff57321e3ce5593970b50867833c439e76a07ee14dc2f8b26b
size 76016


================================================
FILE: Music/Overworld/Great Melody 01.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:eba3f04324341bcec77bd029dde555d10da58984eab16276e508ecf0b0365275
size 84208


================================================
FILE: Music/Overworld/Great Melody02.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:da0d6614a843de5a835bf408bdb8185093db5dfc34b788005106ecdb59662335
size 83184


================================================
FILE: Music/Overworld/In the Town.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:969d06ba38461e7e62703cfe17efcd88b90c7e70d85739fedee2227c71e8d148
size 73968


================================================
FILE: Music/Overworld/Little Tune 11.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:020edc3fb0ee71e0424eaf3f8b03bb98c51a0c56da9580c81bac18a5dbec06f3
size 76016


================================================
FILE: Music/Overworld/ParkMusic.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:f46e1fa9f3f0702c675646d90b79cea5ec39b6a7d7b819ebbca91feed547809d
size 79088


================================================
FILE: Music/Overworld/Peppy Regal Overworld.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:8ff0a9ce1f59a43f6feeecd3e96be73e97b6a8c4953295356e11b694db2ff06c
size 71920


================================================
FILE: Music/Overworld/The Gang's All Here.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:0cf7ffe889b381600f64cc7d46c1dcd3792e3950e548fc06c51641e56fa8d848
size 6216


================================================
FILE: Music/Overworld/Villains of Hiphop.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:9c1ff061cae4abd01a168a5a2d3e3b6d8d6b819d825706837c9ee1f25ede9402
size 88304


================================================
FILE: Music/Overworld/my_streets2.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:837e48ac9257445609dbfad4ecd6be95c6e7ea6083d754f4f842fffff183b0c1
size 103394


================================================
FILE: Music/Readme.md
================================================
Join the GB Studio discord to answer your music questions: https://discord.gg/2hYeJ4m

Music Docs: https://www.gbstudio.dev/docs/music/

# Credits

**krümel (crumb)#0723:**

**Action**
- Boss Fight 1: Fast, upbeat, hectic
- Boss Fight 2: Cool, steady backbeat, tense
- Boss Fight 3: Tense, collected
- Sneaking Around: Short, low-key stealth tune
- Free OST 1 Fighting
- Free OST 1 Backstreets
- Joyous Takeoff
- Dancing and Infiltrating
- Sugar Craze
- Monty's Overheating Spaceship

**Cutscenes**
- Detective Intro - short silence at start (Little Tune 3)
- Peppy Pop Song - length of 1:24, doesn't loop (Ending1)
- Determined
- Twilight Drive
- Free OST 1 Fanfare
- Free OST 1 Ending Theme

**Menu Themes**
- Free OST 1 Character Select

**Overworld**
- Peppy Regal Overworld
- Great Melody01
- Great Melody02
- Little Tune 11
- In the Town
- Villains of Hiphop

**Jingles**
- Awkward Death
- Battle Encounter
- Battle Motif
- Excited Suspense
- Falling Asleep
- Game Over Loop
- Nursery Rhyme with pauses
- Out of Energy Game Over
- Pitfall Death
- Radical Intro
- Radical Victory
- Short Lullaby with Key Modulation
- Short SML2-Style Jingle
- Silly Death
- Slow death
- Swing into Victory
- The Sad Truth
- Victory Fanfare
- Victory Lap
- Rascal's Ditty

**Drumbeats**
- Messy 90s Uptempo Hiphop
- Kick Kick Snare
- Backbeat Metal Drumming
- Boots Cats
- Duck Tales Drumbeat
- Kick Kick Kick Crash
- Halftime Metal Drumming
- Supa-Hip Breakbeat
- Backbeat with Hats
- Upbeat Metal Drumming
- Kick Stutter

**National Anthems**
- France Intro - Opening 4 bars of France's national anthem
- Germany Intro - Opening 4 bars of Germany's national anthem
- Italy Intro - Opening 4 bars of Italy's national anthem
- United Kingdom Intro - Opening 4 bars of UK's national anthem
- United States Intro - Opening 8 bars of US's national anthem

**SFX**
- Alarm Clock
- Alarm System
- Clock
- Clock2
- EuroCop
- Explosion1
- Missle Alert
- Nokia Tune
- Phone Ring
- Pickup_Coin
- Powerup
- Powerup2
- Powerup3
- Squeal Door
- Vibration Alarm

**Ember#1765 / DeerTears:**

**Action**
- Compression - A drum-heavy hiphop song played a little too fast.
- Tape It Together - Dungeon Spelunking Music
- Serious Ping Pong Matches

**Cutscenes**
- Scrolling Text - 6/8 Fanfare with a chorus in 11/8
- Short Hauntings

**Menu Themes**
- MBR Settings

**SFX**
- fast wind gust
- harsh wind gust
- menu no thanks
- nuh-uh
- odd open inventory
- old telephone 1
- racecar zoom
- smb3okay

**Overworld**
- Darkstone - Delay-heavy song for caves, featured in the game 6rooms
- The Gang's All Here - The intro part is out of key but it's otherwise a lighthearted song for walking in the park

**Tomas Danko:**

http://www.danko.se/

Shared under the Attribution 4.0 CC Licence.

- FridgeMusic - Slow, unsteady but relaxed
- Park Music - Upbeat version of Fridgemusic, very catchy

**Tronimal:**

**Overworld**
- Darkstone Remix

**Galaxy Stargraph**

- my_streets2

================================================
FILE: Music/SFX/Alarm Clock.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:d7b9c2ff93fc3140d6c8a5ddbc47493cbb638e7a174634f11e759265b4537464
size 69872


================================================
FILE: Music/SFX/Alarm System.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:341f1fdbf494b7f9dd39b62794de76d51b0cff2d61f4b5ef6ebe0c6cac71be45
size 69872


================================================
FILE: Music/SFX/Clock.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:47db62062bb71672a51561b0523b050876d4de4964eab8dc289e59c608deb8dc
size 69872


================================================
FILE: Music/SFX/Clock2.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:653657a3a310ccf70450d2d323515bd2bb169945367d6261725d7304593f6eb3
size 69872


================================================
FILE: Music/SFX/EuroCop.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:91576f9b456b13603d1273338769c79057047e69ab2183ee7532f2f51e240fe0
size 69872


================================================
FILE: Music/SFX/Explosion1.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:ac40143e72394a35884c4a75013486224929ac5008485a8fcf58ff88101e3d18
size 69872


================================================
FILE: Music/SFX/Missile Alert.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:fef8f5711ca42227a978326286f9de4eb8f2c5aafb4948bfde50cffe9052620d
size 69872


================================================
FILE: Music/SFX/Nokia Tune.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:213e50140d44f15df061ff3e1339dda47b174fb14dbdb3ee7038b7f2caeb63dd
size 69872


================================================
FILE: Music/SFX/Phone Ring.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:cb4437bab8516f117ab9eb15f272365c9022a80519b56bcc02409a56a40222c0
size 69872


================================================
FILE: Music/SFX/Pickup_Coin.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:66e9ba04e07cb213c13de64308250307fad66a81377378a9be705ddf3ed1d462
size 69872


================================================
FILE: Music/SFX/Powerup.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:9b121820b8baea095891d73ebd120c9c0ed3cd320b5d77f84da9606e1f3f912b
size 69872


================================================
FILE: Music/SFX/Powerup2.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:1544d2cf096a2be91c3461a8b8c6679cda9e5a84bbfc235631d2906d9d0d018a
size 69872


================================================
FILE: Music/SFX/Powerup3.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:82eb90a77965a583a13dfe468de39f6be966bcf8aec9877cb5173c760df7047f
size 69872


================================================
FILE: Music/SFX/Readme.md
================================================
# Credits:

**Ember#1765 / DeerTears:**

- fast wind gust.mod
- harsh wind gust.mod
- menu no thanks.mod
- nuh-uh.mod
- odd open inventory.mod
- old telephone 1.mod
- racecar zoom.mod
- smb3okay.mod


================================================
FILE: Music/SFX/Squeal Door.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:d642d01bde056b9dde96f2db0892c870367143a973b77aaede4da5aad0d62598
size 69872


================================================
FILE: Music/SFX/Vibration Alarm.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:273b092cb200ef7db676ee1201fe51cc4784688bdeacbf0f4b1862749b188a0c
size 69872


================================================
FILE: Music/SFX/fast wind gust.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:2564a4027e797db9e137d9652b5176f0fe7a62d52050e62f34fa79128d6f6604
size 69872


================================================
FILE: Music/SFX/harsh wind gust.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:7a675746f33b888ffe2e0a2ff14b263e9024ae799d582c6b8b9ddbf7fbc43f11
size 69872


================================================
FILE: Music/SFX/menu no thanks.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:3ad05a0df0f623b6c010df4ee88ded0ef45a3befcacdeb36f83c3a83a17b3655
size 69872


================================================
FILE: Music/SFX/nuh-uh.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:bc821f64e788366e75e772cf5d7c301e5d7ab8a0dbe856775c205f5c3bb004ca
size 69872


================================================
FILE: Music/SFX/odd open inventory.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:66c8de97f55b06cb43d1311d27dc8eb5139786b6f1e1369c13ff900d7777ae91
size 2108


================================================
FILE: Music/SFX/old telephone 1.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:cb2548ef582331d2e3a5ad82fee78e55815b9efd940bbe9b30356a3f599c60d4
size 2108


================================================
FILE: Music/SFX/racecar zoom.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:725acda9ff7dbdb6112375f71579b4614185ed555a5c6afc51696e0ecb05818c
size 69872


================================================
FILE: Music/SFX/smb3okay.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:2637e719b28dd0d2738a19595be9edef3d13c0b177f5293dafe29979a9f0c55b
size 69872


================================================
FILE: Music/Spooky/Detective Intro.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:a7f78cafc7ea94e0cc34adc372a441b8e1dce0da3bcb8f1ebc6d1835803ceeea
size 77040


================================================
FILE: Music/Spooky/Short Hauntings.mod
================================================
version https://git-lfs.github.com/spec/v1
oid sha256:05fb02ac54fa87a1cb2bd361c4601792e6598c66ba6b08634f18a8e6044f243f
size 71920


================================================
FILE: README.md
================================================
![alt text](https://github.com/DeerTears/GB-Studio-Community-Assets/blob/master/titlecard_july11_2019.png "GB Studio Community Assets Titlecard")

All assets must be original and usable in GB Studio. **Please do not upload content that you did not make.**

No attribution is required! All assets can be freely distributed and used commercially. If you're submitting your own work to this repo, you must be okay with it being used commercially and potentially redistributed without credit. Read the LICENCE file for more details.

# Downloading .mod music?

**Do not download the entire repository!** Instead, [click here to download a music-only .zip folder](https://github.com/DeerTears/GB-Studio-Community-Assets/releases/tag/v1.0) of this repository. Github changes line-endings when zipping a full repository, and this mismatch causes GBT Player to crash on compile. You can prevent this GBT Player crash by downloading the music release separately from the rest of the repository.

# How-To Credit

To help track our contributors, 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. :)

# How-To Contribute

[Read the CONTRIBUTING.MD file](https://github.com/DeerTears/GB-Studio-Community-Assets/blob/master/CONTRIBUTING.md)

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).

# Other Links and Community Hubs

- [GB Studio Download](https://chrismaltby.itch.io/gb-studio)
- [GB Studio Documentation](https://www.gbstudio.dev/docs)
- [GB Studio Discord](https://discord.com/invite/dYeyUem)
- [GB Studio Plugin Database](https://docs.google.com/spreadsheets/d/1d2F5hSEMt6nkacw-qVnYlT3IPHqmCCaLFhRboC5xxc0/edit#gid=0)
- [GB Studio Central - News, Interviews, Guides](https://gbstudiocentral.com/)
- [r/gbstudio](https://www.reddit.com/r/gbstudio/)
- [Other Gameboy/GB Studio Community Links](https://github.com/DeerTears/GB-Studio-Community-Assets/blob/master/COMMUNITY_LINKS.md)

# Thanks

I'd like to thank Paige who has worked hard to maintain the repository and help me out with Github LFS. You can check her out on [Paige's Cohost](https://cohost.org/MxAshlynn).

Ember here. I really appreciate how the GB Studio community has come together for this repository. If you would like to support purely the organizational work I've done by maintaining this repository, consider [buying me a coffee](https://ko-fi.com/goodnightgirl). There is no reward provided in supporting me, everyone is welcome to contribute or make suggestions of how to improve the repository.

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/R6R5EPWKI)

Happy developing!


================================================
FILE: Scripts/Camera/Screenscroll/screenscroll_scene_init.txt
================================================
{
    "script": [
        {
            "id": "b7afdf6b-72a5-4f4e-9bd2-a057d047364e",
            "command": "EVENT_CAMERA_MOVE_TO",
            "args": {
                "x": 0,
                "y": 0,
                "speed": "0"
            }
        },
        {
            "id": "445484e7-6f06-469a-a2c6-7c02d432b2e8",
            "command": "EVENT_SET_VALUE",
            "args": {
                "variable": "0",
                "value": {
                    "type": "number",
                    "value": 0
                }
            }
        },
        {
            "id": "d4997ea8-b49d-446e-a6ad-26467fc06ee5",
            "command": "EVENT_END"
        }
    ],
    "__type": "script"
}

================================================
FILE: Scripts/Camera/Screenscroll/screenscroll_trigger.txt
================================================
{
    "script": [
        {
            "id": "90830cb2-a146-4193-ac7b-857432bece89",
            "command": "EVENT_SWITCH",
            "args": {
                "variable": "0",
                "choices": 2,
                "__collapseCase0": false,
                "value0": 0,
                "__collapseCase1": false,
                "value1": 1,
                "__collapseCase2": false,
                "value2": 3,
                "__collapseCase3": false,
                "value3": 4,
                "__collapseCase4": false,
                "value4": 5,
                "__collapseCase5": false,
                "value5": 6,
                "__collapseCase6": false,
                "value6": 7,
                "__collapseCase7": false,
                "value7": 8,
                "__collapseCase8": false,
                "value8": 9,
                "__collapseCase9": false,
                "value9": 10,
                "__collapseCase10": false,
                "value10": 11,
                "__collapseCase11": false,
                "value11": 12,
                "__collapseCase12": false,
                "value12": 13,
                "__collapseCase13": false,
                "value13": 14,
                "__collapseCase14": false,
                "value14": 15,
                "__collapseCase15": false,
                "value15": 16,
                "__collapseElse": false,
                "__disableElse": true
            },
            "children": {
                "true0": [
                    {
                        "id": "5244b31e-5e2c-4496-b8f4-c341980c2d7e",
                        "command": "EVENT_CAMERA_MOVE_TO",
                        "args": {
                            "x": 20,
                            "y": 0,
                            "speed": "1"
                        }
                    },
                    {
                        "id": "5dc26bd3-39d8-4cec-90f6-dbc6a9ef424e",
                        "command": "EVENT_ACTOR_MOVE_RELATIVE",
                        "args": {
                            "actorId": "$self$",
                            "x": 3,
                            "y": 0,
                            "moveType": "horizontal",
                            "useCollisions": false
                        }
                    },
                    {
                        "id": "b8a77252-627b-426f-99ab-842c51b3703c",
                        "command": "EVENT_SET_VALUE",
                        "args": {
                            "variable": "0",
                            "value": {
                                "type": "number",
                                "value": 1
                            }
                        }
                    },
                    {
                        "id": "800c5026-715a-4d12-8b34-28708469b8a6",
                        "command": "EVENT_END"
                    }
                ],
                "true1": [
                    {
                        "id": "0b60118b-be04-4e3e-b272-18738cab40ea",
                        "command": "EVENT_CAMERA_MOVE_TO",
                        "args": {
                            "x": 0,
                            "y": 0,
                            "speed": "1"
                        }
                    },
                    {
                        "id": "63da2fde-fa19-4234-ac2d-8aee81fabb69",
                        "command": "EVENT_ACTOR_MOVE_RELATIVE",
                        "args": {
                            "actorId": "$self$",
                            "x": -3,
                            "y": 0,
                            "moveType": "horizontal",
                            "useCollisions": false
                        }
                    },
                    {
                        "id": "056269fc-05b1-4ee1-ba7b-bc4c79207bea",
                        "command": "EVENT_SET_VALUE",
                        "args": {
                            "variable": "0",
                            "value": {
                                "type": "number",
                                "value": 0
                            }
                        }
                    },
                    {
                        "id": "b3e31b0a-8388-4f85-986f-bf59d154c26b",
                        "command": "EVENT_END"
                    }
                ],
                "true2": [
                    {
                        "id": "c3232516-1404-4713-8d1a-7d58b9990190",
                        "command": "EVENT_END"
                    }
                ],
                "true3": [
                    {
                        "id": "d934a39a-91b7-43e0-8a8f-4248dc39fcb4",
                        "command": "EVENT_END"
                    }
                ],
                "true4": [
                    {
                        "id": "d9df4982-e720-499f-bd8f-f7a107bf6afc",
                        "command": "EVENT_END"
                    }
                ],
                "true5": [
                    {
                        "id": "005923b0-d8b7-4d25-b386-f86b3fa3ef8e",
                        "command": "EVENT_END"
                    }
                ],
                "true6": [
                    {
                        "id": "1862e8d4-806f-4583-b060-bc5d53a9d717",
                        "command": "EVENT_END"
                    }
                ],
                "true7": [
                    {
                        "id": "367db6d7-c6d2-4699-ab15-922338d6e61a",
                        "command": "EVENT_END"
                    }
                ],
                "true8": [
                    {
                        "id": "3749aca3-cc5c-41eb-9330-c13336568bf2",
                        "command": "EVENT_END"
                    }
                ],
                "true9": [
                    {
                        "id": "66b1a4dd-202c-4742-8b59-01cdaabde330",
                        "command": "EVENT_END"
                    }
                ],
                "true10": [
                    {
                        "id": "b85fc047-543f-4393-8ec6-2f5d12d8125d",
                        "command": "EVENT_END"
                    }
                ],
                "true11": [
                    {
                        "id": "7ba53ec6-6b16-4d76-bc44-8474d52144f5",
                        "command": "EVENT_END"
                    }
                ],
                "true12": [
                    {
                        "id": "478cfa0b-43aa-4fce-9e52-fcbff625cdfd",
                        "command": "EVENT_END"
                    }
                ],
                "true13": [
                    {
                        "id": "43ecbd1c-61f6-4070-8c31-877e8a4f5aa5",
                        "command": "EVENT_END"
                    }
                ],
                "true14": [
                    {
                        "id": "2dd09603-5312-4ff9-b34f-e558b0f07a18",
                        "command": "EVENT_END"
                    }
                ],
                "true15": [
                    {
                        "id": "1bf2a839-9d45-4485-848a-c55dcc34c4d5",
                        "command": "EVENT_END"
                    }
                ],
                "false": [
                    {
                        "id": "a3b34a96-5b48-4c7e-bcee-f71101f3d35d",
                        "command": "EVENT_END"
                    }
                ]
            }
        },
        {
            "id": "c983710d-39a9-4728-b325-eed7ce8df3d7",
            "command": "EVENT_END"
        }
    ],
    "__type": "script"
}

================================================
FILE: Scripts/Camera/break camera from player.txt
================================================
{
    "script": [
        {
            "id": "b7afdf6b-72a5-4f4e-9bd2-a057d047364e",
            "command": "EVENT_CAMERA_MOVE_TO",
            "args": {
                "x": 0,
                "y": 0,
                "speed": "0"
            }
        },
        
        {
            "id": "d4997ea8-b49d-446e-a6ad-26467fc06ee5",
            "command": "EVENT_END"
        }
    ],
    "__type": "script"
}

================================================
FILE: Sprites/Animated/README.md
================================================
# Animated Non-Actor Sprites

By TommySezSoWhat
- `d20_anim.png`: Rolling D20 animation.
- `music_notes.png`: Scrolling music notes, using the note graphic from the default music emote.

By Nath on the GB Studio Discord
- `selection_box.png`: Marching ants animation in a box

By krümel on the GB Studio Discord:
Knight_walk(4frames).png
- `Animal`
- `Card`
- `Crosshair`
- `Dice`
- `krümel's People`

By Kalyen
- `Fairy_wing_r.png`
- `Fairy_wing_l.png`: Flapping wings

By DeerTears
- `large_coffee.png`
- `small_coffee.png`

By GumpyFunction
- `ChristmasCop_animated.png`
- `Hooded_Figure_animated.png `
- `Knight_animated.png`
- `Knight_walk(4frames).png`
- `Old_Orc_animated.png`
- `Orc_1.png`
- `Orc_2.png`
- `Orc_3.png`
- `Orc_animated.png`
- `Orc_walk(4frames).png `
- `Skeleton_Body(idle).png`
- `Spinning_Skeleton_Head(5frames).png`
- `Bat-Orc_animated.png`
- `Cat_idle.png`
- `Crow_flying.png`
- `Crow_idle.png`
- `Mimic_walk(4frames).png`

By godai78
- `kosmonaut.png`
- `kosmonaut_eva.png`
- `kosmonaut_girl.png`


================================================
FILE: Sprites/Static/Cats/README.md
================================================
# Cat Sprites

A set of 7 static cat sprites based on the cat sprite from the GB Studio demo.

- Smudgie: `t_cat_calico_static.png`
- Nicky: `t_cat_fat_tuxedo_static.png`
- Bertie: `t_cat_grey_tuxedo_static.png`
- Jett: `t_cat_short_black_static.png`
- Einstein: `t_cat_short_tuxedo_static.png`
- Knuckles: `t_cat_tuxedo_static.png`
- Snobol: `t_cat_white_static.png`


================================================
FILE: Sprites/Static/README.md
================================================
# Static Sprites

By Kalyen
- `Log_1.png`
- `Portrait_girl_1.png`: Portrait for use in dialog boxes.


================================================
FILE: Tilesets/Credits.md
================================================
Old Halls by AFI - Created by AFI#8956 on the community Discord, uploaded by DeerTears. Distributed with permission.  
Free Furniture by yoanqwp - Created by yoanqwp#8156 on the community Discord, uploaded by DigiDuncan. Distributed with permission.  
Arcade cabinets by godai78 - Free tiles with arcade machines uploaded by author.


================================================
FILE: UI/README.md
================================================
# Credits:

## Cursors

**Chris Maltby:**

- `default cursor.png`

**AstraLee:**

- `SkyrimCursor.png` - "Designed similar to the UI of Skyrim. Recommend for use with inverted fonts."

**Armanlone:**

- `fleur_de_lis_cursor.png` - "Cursor designed based on the fleur de lis and Hollow Knight borders. Recommended for dark frames and white fonts."

## Emotes

**Chris Maltby:**

- `default emotes.png`


**Gram:**

- `grams-emotes.png`: "Redid the standard emote bubbles to be a more rounded. A little change but they looks much better. Free to use."

## Frames

**Chris Maltby:**

- `default frame.png`

**TommySezSoWhat:**

- `simple_frame.png` - "Very simple single-line frame with iffy anti-aliases at the corners."

**AstraLee:**

- `SkyrimFrame.png` - "Designed similar to the UI of Skyrim. Recommend for use with inverted fonts."

**Armanlone:**

- `fleur_de_lis_frame.png` - "Dark background frame with four fleur de lis on each corner."
Download .txt
gitextract_xbofjviu/

├── .gitattributes
├── .gitignore
├── Backgrounds/
│   └── README.md
├── COMMUNITY_LINKS.md
├── CONTRIBUTING.md
├── Engine/
│   └── GBT Player Banks/
│       ├── Ember Triangle.s
│       └── README.md
├── Fonts/
│   └── README.md
├── LICENSE
├── Music/
│   ├── Action/
│   │   ├── Boss fight1.mod
│   │   ├── Boss fight2.mod
│   │   ├── Compression.mod
│   │   ├── Dancing and Infiltrating.mod
│   │   ├── Free OST 1 - Backstreets.mod
│   │   ├── Free OST 1 - Fighting.mod
│   │   ├── Joyous Takeoff.mod
│   │   ├── Monty's Overheating Spaceship.mod
│   │   ├── Serious Ping Pong Matches.mod
│   │   ├── Sneaking Around.mod
│   │   ├── Sugar Craze.mod
│   │   ├── Tape It Together.mod
│   │   └── Tense Boss Battle.mod
│   ├── Drumbeats/
│   │   ├── Backbeat Metal Drumming.mod
│   │   ├── Boots Cats.mod
│   │   ├── Breakbeat with Hats.mod
│   │   ├── Duck Tales Drumbeat.mod
│   │   ├── Halftime Metal Drumming.mod
│   │   ├── Kick Kick Kick Crash.mod
│   │   ├── Kick Kick Snare.mod
│   │   ├── Kick Stutter.mod
│   │   ├── Messy 90s Uptempo Hiphop.mod
│   │   ├── Supa-Hip Breakbeat.mod
│   │   └── Upbeat Metal Drumming.mod
│   ├── Exploration/
│   │   ├── Determined.mod
│   │   ├── Peppy Pop Song.mod
│   │   ├── Scrolling Text.mod
│   │   └── Twilight Drive.mod
│   ├── Jingles/
│   │   ├── Awkward Death.mod
│   │   ├── Battle Encounter.mod
│   │   ├── Battle Motif.mod
│   │   ├── Excited Suspense.mod
│   │   ├── Falling Asleep.mod
│   │   ├── Nursery Rhyme with pauses.mod
│   │   ├── Out of Energy Game Over.mod
│   │   ├── Pitfall Death.mod
│   │   ├── Radical Intro.mod
│   │   ├── Radical Victory.mod
│   │   ├── Rascal's Ditty.mod
│   │   ├── Short Lullaby with Key Modulation.mod
│   │   ├── Short SML2-Style Jingle.mod
│   │   ├── Silly Death.mod
│   │   ├── Slow death.mod
│   │   ├── Swing into Victory.mod
│   │   ├── The Sad Truth.mod
│   │   ├── Victory Fanfare.mod
│   │   └── Victory Lap.mod
│   ├── Menu Themes/
│   │   ├── Free OST 1 - Character Select.mod
│   │   ├── Free OST 1 - Ending Theme.mod
│   │   ├── Free OST 1 - Fanfare.mod
│   │   └── MBR Settings.mod
│   ├── National Anthems/
│   │   ├── France Intro.mod
│   │   ├── Germany Intro.mod
│   │   ├── Italy Intro.mod
│   │   ├── United Kingdom Intro.mod
│   │   └── United States of America Intro.mod
│   ├── Overworld/
│   │   ├── Darkstone.mod
│   │   ├── Darkstone_Remix.mod
│   │   ├── FridgeMusic.mod
│   │   ├── Great Melody 01.mod
│   │   ├── Great Melody02.mod
│   │   ├── In the Town.mod
│   │   ├── Little Tune 11.mod
│   │   ├── ParkMusic.mod
│   │   ├── Peppy Regal Overworld.mod
│   │   ├── The Gang's All Here.mod
│   │   ├── Villains of Hiphop.mod
│   │   └── my_streets2.mod
│   ├── Readme.md
│   ├── SFX/
│   │   ├── Alarm Clock.mod
│   │   ├── Alarm System.mod
│   │   ├── Clock.mod
│   │   ├── Clock2.mod
│   │   ├── EuroCop.mod
│   │   ├── Explosion1.mod
│   │   ├── Missile Alert.mod
│   │   ├── Nokia Tune.mod
│   │   ├── Phone Ring.mod
│   │   ├── Pickup_Coin.mod
│   │   ├── Powerup.mod
│   │   ├── Powerup2.mod
│   │   ├── Powerup3.mod
│   │   ├── Readme.md
│   │   ├── Squeal Door.mod
│   │   ├── Vibration Alarm.mod
│   │   ├── fast wind gust.mod
│   │   ├── harsh wind gust.mod
│   │   ├── menu no thanks.mod
│   │   ├── nuh-uh.mod
│   │   ├── odd open inventory.mod
│   │   ├── old telephone 1.mod
│   │   ├── racecar zoom.mod
│   │   └── smb3okay.mod
│   └── Spooky/
│       ├── Detective Intro.mod
│       └── Short Hauntings.mod
├── README.md
├── Scripts/
│   └── Camera/
│       ├── Screenscroll/
│       │   ├── screenscroll_scene_init.txt
│       │   └── screenscroll_trigger.txt
│       └── break camera from player.txt
├── Sprites/
│   ├── Animated/
│   │   └── README.md
│   └── Static/
│       ├── Cats/
│       │   └── README.md
│       └── README.md
├── Tilesets/
│   └── Credits.md
└── UI/
    └── README.md
Condensed preview — 113 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (88K chars).
[
  {
    "path": ".gitattributes",
    "chars": 904,
    "preview": "# GitHub Language Detection\n*.gbsproj linguist-language=JSON\n\n# Normalize Line Endings to LineFeed\n*.md text=auto\n*.text"
  },
  {
    "path": ".gitignore",
    "chars": 19,
    "preview": "[Bb]uild/\n*.bak\n~*\n"
  },
  {
    "path": "Backgrounds/README.md",
    "chars": 202,
    "preview": "# Credits:\n\n**Chris Maltby:**\n\n- `stars.png`\n\n**Ember/DeerTears:**\n\n- `big_checkers.png`\n\n**GumpyFunction:**\n\n- `Cabin(E"
  },
  {
    "path": "COMMUNITY_LINKS.md",
    "chars": 4750,
    "preview": "# Community Links\n\nNone of these links are endorsed officially by GB Studio or Chris Maltby. Not all of the contents fol"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1384,
    "preview": "# How-To Contribute\n\n## #1 Filenames\n\nMake sure the file you're adding has a unique and distinctive name.\nIf you're usin"
  },
  {
    "path": "Engine/GBT Player Banks/Ember Triangle.s",
    "chars": 30354,
    "preview": ";-------------------------------------------------------------------------------\r\n;\r\n; GBT Player v2.2.0\r\n;\r\n; SPDX-Lice"
  },
  {
    "path": "Engine/GBT Player Banks/README.md",
    "chars": 2725,
    "preview": "# Credits\r\n\r\n**Ember:**\r\n\r\n- `Ember Triangle.s` - The usual waveforms, but instrument 9 (Ringy) is replaced with a stutt"
  },
  {
    "path": "Fonts/README.md",
    "chars": 1877,
    "preview": "# Credits:\n\n**TommysezSoWhat:**\n\n- `d20_ascii.png`: Modified character set to include a D20 outline and single-character"
  },
  {
    "path": "LICENSE",
    "chars": 1068,
    "preview": "MIT License\n\nCopyright (c) 2019 Ember Bland\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "Music/Action/Boss fight1.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:d08be31164c5e73b962ba8c2748c6a5845701a3ca2f1457af2e67f3501cb0c1e\ns"
  },
  {
    "path": "Music/Action/Boss fight2.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:08e1f5c1b643b617fc309926403a47f55b0b6dffc5ef2b1f7faf0cc40f1c09e1\ns"
  },
  {
    "path": "Music/Action/Compression.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:4946292612932fc1f11133d929fba0db564bb966f362620da468cf0607621a96\ns"
  },
  {
    "path": "Music/Action/Dancing and Infiltrating.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:2a45a3981fdde41bbda055d1a07fdca811133d454b432d48fa5b5b0ea9cf3814\ns"
  },
  {
    "path": "Music/Action/Free OST 1 - Backstreets.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:aa957d46f07436fade5d5be667c878fee3bc385ffa960c11450e3682ba4d5299\ns"
  },
  {
    "path": "Music/Action/Free OST 1 - Fighting.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:602de66e3f12b49928a78c69a12b46fb67cd33c0f39eab723a0abd07117c2ffe\ns"
  },
  {
    "path": "Music/Action/Joyous Takeoff.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:74f5abd0476049851469c7c30e98cfa6d90e2694c0d944ba5dccda92cf66eebd\ns"
  },
  {
    "path": "Music/Action/Monty's Overheating Spaceship.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:051e0e766076ba29979abbeb9c912eaeedeeef91fbee7a4bfde4345ef89a5554\ns"
  },
  {
    "path": "Music/Action/Serious Ping Pong Matches.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:e112bf2c026fc30ddd0f5183cbcf260d6eb33fbcd7ee58bbb984bf2f19fcc0df\ns"
  },
  {
    "path": "Music/Action/Sneaking Around.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:e2c180dcc8529aeb897641573c8fa458f7b242582ffc5ee2ad1d12c01cd82674\ns"
  },
  {
    "path": "Music/Action/Sugar Craze.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:d1cde65c34a78307f4de76eb821c2a14f2133a95e94d0b499a3624343cd37f2f\ns"
  },
  {
    "path": "Music/Action/Tape It Together.mod",
    "chars": 129,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:d1eeb3b20e40b79d0c806caee62fdb95dae0acba1006d351dd407d2e928f5c9d\ns"
  },
  {
    "path": "Music/Action/Tense Boss Battle.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:1cdc33dc93acf05ad18274715e920b8d60be633464a215c52960c97affe18aa9\ns"
  },
  {
    "path": "Music/Drumbeats/Backbeat Metal Drumming.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:208fec4efed2c5007b2514bd883d1d6a674ac3acedbb36f30f461cd5ba5c0dd4\ns"
  },
  {
    "path": "Music/Drumbeats/Boots Cats.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:a66adaeaa731b8d4773ac4cd2d3c23ed30105bc6fdc7859a9df41161009ab816\ns"
  },
  {
    "path": "Music/Drumbeats/Breakbeat with Hats.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:4b1f2f10a99a1fbc1736db8915dd9883cdc012a8c844f0367266981b4e178bb5\ns"
  },
  {
    "path": "Music/Drumbeats/Duck Tales Drumbeat.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:540c17b8f0e7eba3dc3d2016d98dc093ec2b0bc01f2c80d27d09d7b735c2c23d\ns"
  },
  {
    "path": "Music/Drumbeats/Halftime Metal Drumming.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:661b29ffc2ed54f38246c3a03df8eddfe74ee0571afeb60fb59985ee1622ff09\ns"
  },
  {
    "path": "Music/Drumbeats/Kick Kick Kick Crash.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:b591d788670ac9e33d2d58543e2df8f2b4b464e5d98a7f26451802c709abdb46\ns"
  },
  {
    "path": "Music/Drumbeats/Kick Kick Snare.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:56da221f4ecbf702148b9741798735f38c9c5d37382e1d9b2e86c028fa28ec5b\ns"
  },
  {
    "path": "Music/Drumbeats/Kick Stutter.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:4903dd242fc19bf47b4c9417bda8047a015bcc68e82f7b89568f97cf434cfe62\ns"
  },
  {
    "path": "Music/Drumbeats/Messy 90s Uptempo Hiphop.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:3325179be3cf95b572af4c10ab9754b5c99ce3aa7447bfb79fd613dbe74307b0\ns"
  },
  {
    "path": "Music/Drumbeats/Supa-Hip Breakbeat.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:5345b47de34b4a75fb1505ac66bfbbf7b29d9775aa5221a59a73513a31e10c9e\ns"
  },
  {
    "path": "Music/Drumbeats/Upbeat Metal Drumming.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:b3ccf41358acc18b3a99e690bf6fc90ad76e0e4dfc93c50ec603ba41346afa88\ns"
  },
  {
    "path": "Music/Exploration/Determined.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:f26dacec33a4598096d154603e656f2a42fe02f9a03102c6284d836c47bf2201\ns"
  },
  {
    "path": "Music/Exploration/Peppy Pop Song.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:84cfe8cfcc9c0216b9038e8f40b2aad5b7d134a690fc6deb4356d241349bef01\ns"
  },
  {
    "path": "Music/Exploration/Scrolling Text.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:6400445f903c756145157353c6b778edb8f7ce0209b5b7be45ef540fbca34650\ns"
  },
  {
    "path": "Music/Exploration/Twilight Drive.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:98376c5ad78d15d70171127b150eace848789e2c32d9cfec3fb1b7a68f66e355\ns"
  },
  {
    "path": "Music/Jingles/Awkward Death.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:ed8420034b62907d0e70e440ef333faddb700d80363a2ee5e974b836d13ab072\ns"
  },
  {
    "path": "Music/Jingles/Battle Encounter.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:5966293203fab049a675e54dddf6271352e8e0123406f8e53c7b90134178fac7\ns"
  },
  {
    "path": "Music/Jingles/Battle Motif.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:d402e1f6778804558cf315874160d7a66ffd73c35b25b2740fdb3a7687ee4b66\ns"
  },
  {
    "path": "Music/Jingles/Excited Suspense.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:30cd67a56d592c1f33c9c6fc01e8bf780baeebba98e88f8a6c2f54f2aa333102\ns"
  },
  {
    "path": "Music/Jingles/Falling Asleep.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:b106e161292cb638a0ff3425c10702f853f70f634eccf56aed2e2da6bb87567f\ns"
  },
  {
    "path": "Music/Jingles/Nursery Rhyme with pauses.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:c2c1b751150d6c842fca1c2a9ec465fa0d5f36f197eac4b6f72038fe7de10348\ns"
  },
  {
    "path": "Music/Jingles/Out of Energy Game Over.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:a1e197301d636c2dc60a2978ad2d0af394c3f98770bad84dff12cbe52289b03d\ns"
  },
  {
    "path": "Music/Jingles/Pitfall Death.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:1deeac81f9f6993701f47bce3105b79277f051fa7f602d19fb7e34909f29a911\ns"
  },
  {
    "path": "Music/Jingles/Radical Intro.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:4c7830fd24e04e46361da7fbda92d579ab17d5a506ffa4e14ed849c1bbdd73ec\ns"
  },
  {
    "path": "Music/Jingles/Radical Victory.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:02b2b7b91feeab55bed9874bfbc2bac68683c60da03583a090f9bc187fc605ff\ns"
  },
  {
    "path": "Music/Jingles/Rascal's Ditty.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:104dce932a6e236b5ec0b9f12f03b4945aab41dbc3b472260b70ab28cbde7e7e\ns"
  },
  {
    "path": "Music/Jingles/Short Lullaby with Key Modulation.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:3fc87c55c261dd7aa73bb64f43244b27aa2a9f78d40c4e06d7f80378a03679ca\ns"
  },
  {
    "path": "Music/Jingles/Short SML2-Style Jingle.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:c0b75ff5210183100f120bee790daf31ff7651b5b3b35318afe37a332addb0b3\ns"
  },
  {
    "path": "Music/Jingles/Silly Death.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:3ce62c85756300125faa2d19dfa2c3e7c9dc2114d0e8dccf1fb7f598ef0e81f9\ns"
  },
  {
    "path": "Music/Jingles/Slow death.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:02790e392331c5ffa6543c8ed788688a525c13641974c2a6d4f36d51e3d6d539\ns"
  },
  {
    "path": "Music/Jingles/Swing into Victory.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:cfe6f756382e9ccc4caea6a59cf74a168bb62b39f0a9b7e2a89f6b6b4120c09d\ns"
  },
  {
    "path": "Music/Jingles/The Sad Truth.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:eb6be515ddbb38cabea188f0b49bd4b3c885eacad93a2ad788393777622b17c1\ns"
  },
  {
    "path": "Music/Jingles/Victory Fanfare.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:8b31e90949094b57e97e7e4acb135b1bf9807fb07fc6132ff322a1e975591f5e\ns"
  },
  {
    "path": "Music/Jingles/Victory Lap.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:1e9a3f4930c1a476fce7ad864e71c5bb259b57bf5e2956f20f30a217efe97b56\ns"
  },
  {
    "path": "Music/Menu Themes/Free OST 1 - Character Select.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:f3a0482f6c0edb63faeddd02da9fe503729757bf06135640212ac38281deaa66\ns"
  },
  {
    "path": "Music/Menu Themes/Free OST 1 - Ending Theme.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:e2b41e1f5123fcc569bf00cb52cfe8f66615f66b9529dea76669f46ef8ed6af8\ns"
  },
  {
    "path": "Music/Menu Themes/Free OST 1 - Fanfare.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:8c6aecbf3c4ffb22aa9dd23d6cf10bcfac2bb8ecbccc0d86671a700e10e1a79f\ns"
  },
  {
    "path": "Music/Menu Themes/MBR Settings.mod",
    "chars": 129,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:7763cc258d2a7f4cfb32687377337e7cd295f9f15c52499fb66ce492bde2fbe9\ns"
  },
  {
    "path": "Music/National Anthems/France Intro.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:987c556425958f9cc753e612b838a7c95327777310a8ac66ec5d2d910552609e\ns"
  },
  {
    "path": "Music/National Anthems/Germany Intro.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:3e2baf77e00ab2b44c206f4d7f88fc6cdccd370f50774032d2e23ff186598c93\ns"
  },
  {
    "path": "Music/National Anthems/Italy Intro.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:ec975e00337901a37c19870139bbe266d2ad7ab146958ec6f43e163ea334710c\ns"
  },
  {
    "path": "Music/National Anthems/United Kingdom Intro.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:54aa56460895b352ab13bbdd521303ceff21697411305db3a20dc8d3d0b0855d\ns"
  },
  {
    "path": "Music/National Anthems/United States of America Intro.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:d3713cfead15af00bb61b3b007116658dc17791692a25f9a84cf567bc864f42e\ns"
  },
  {
    "path": "Music/Overworld/Darkstone.mod",
    "chars": 129,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:a0d14531ae6348ec2a149b2284ee970b9e4f428ad3ed0c23fd4d00faf0498779\ns"
  },
  {
    "path": "Music/Overworld/Darkstone_Remix.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:a3266c7b9712faa744f978f8b4725475c9071b2869089abe968d6f02d4f07243\ns"
  },
  {
    "path": "Music/Overworld/FridgeMusic.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:622038cad3ba4cff57321e3ce5593970b50867833c439e76a07ee14dc2f8b26b\ns"
  },
  {
    "path": "Music/Overworld/Great Melody 01.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:eba3f04324341bcec77bd029dde555d10da58984eab16276e508ecf0b0365275\ns"
  },
  {
    "path": "Music/Overworld/Great Melody02.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:da0d6614a843de5a835bf408bdb8185093db5dfc34b788005106ecdb59662335\ns"
  },
  {
    "path": "Music/Overworld/In the Town.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:969d06ba38461e7e62703cfe17efcd88b90c7e70d85739fedee2227c71e8d148\ns"
  },
  {
    "path": "Music/Overworld/Little Tune 11.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:020edc3fb0ee71e0424eaf3f8b03bb98c51a0c56da9580c81bac18a5dbec06f3\ns"
  },
  {
    "path": "Music/Overworld/ParkMusic.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:f46e1fa9f3f0702c675646d90b79cea5ec39b6a7d7b819ebbca91feed547809d\ns"
  },
  {
    "path": "Music/Overworld/Peppy Regal Overworld.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:8ff0a9ce1f59a43f6feeecd3e96be73e97b6a8c4953295356e11b694db2ff06c\ns"
  },
  {
    "path": "Music/Overworld/The Gang's All Here.mod",
    "chars": 129,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:0cf7ffe889b381600f64cc7d46c1dcd3792e3950e548fc06c51641e56fa8d848\ns"
  },
  {
    "path": "Music/Overworld/Villains of Hiphop.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:9c1ff061cae4abd01a168a5a2d3e3b6d8d6b819d825706837c9ee1f25ede9402\ns"
  },
  {
    "path": "Music/Overworld/my_streets2.mod",
    "chars": 131,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:837e48ac9257445609dbfad4ecd6be95c6e7ea6083d754f4f842fffff183b0c1\ns"
  },
  {
    "path": "Music/Readme.md",
    "chars": 2945,
    "preview": "Join the GB Studio discord to answer your music questions: https://discord.gg/2hYeJ4m\n\nMusic Docs: https://www.gbstudio."
  },
  {
    "path": "Music/SFX/Alarm Clock.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:d7b9c2ff93fc3140d6c8a5ddbc47493cbb638e7a174634f11e759265b4537464\ns"
  },
  {
    "path": "Music/SFX/Alarm System.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:341f1fdbf494b7f9dd39b62794de76d51b0cff2d61f4b5ef6ebe0c6cac71be45\ns"
  },
  {
    "path": "Music/SFX/Clock.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:47db62062bb71672a51561b0523b050876d4de4964eab8dc289e59c608deb8dc\ns"
  },
  {
    "path": "Music/SFX/Clock2.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:653657a3a310ccf70450d2d323515bd2bb169945367d6261725d7304593f6eb3\ns"
  },
  {
    "path": "Music/SFX/EuroCop.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:91576f9b456b13603d1273338769c79057047e69ab2183ee7532f2f51e240fe0\ns"
  },
  {
    "path": "Music/SFX/Explosion1.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:ac40143e72394a35884c4a75013486224929ac5008485a8fcf58ff88101e3d18\ns"
  },
  {
    "path": "Music/SFX/Missile Alert.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:fef8f5711ca42227a978326286f9de4eb8f2c5aafb4948bfde50cffe9052620d\ns"
  },
  {
    "path": "Music/SFX/Nokia Tune.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:213e50140d44f15df061ff3e1339dda47b174fb14dbdb3ee7038b7f2caeb63dd\ns"
  },
  {
    "path": "Music/SFX/Phone Ring.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:cb4437bab8516f117ab9eb15f272365c9022a80519b56bcc02409a56a40222c0\ns"
  },
  {
    "path": "Music/SFX/Pickup_Coin.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:66e9ba04e07cb213c13de64308250307fad66a81377378a9be705ddf3ed1d462\ns"
  },
  {
    "path": "Music/SFX/Powerup.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:9b121820b8baea095891d73ebd120c9c0ed3cd320b5d77f84da9606e1f3f912b\ns"
  },
  {
    "path": "Music/SFX/Powerup2.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:1544d2cf096a2be91c3461a8b8c6679cda9e5a84bbfc235631d2906d9d0d018a\ns"
  },
  {
    "path": "Music/SFX/Powerup3.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:82eb90a77965a583a13dfe468de39f6be966bcf8aec9877cb5173c760df7047f\ns"
  },
  {
    "path": "Music/SFX/Readme.md",
    "chars": 199,
    "preview": "# Credits:\n\n**Ember#1765 / DeerTears:**\n\n- fast wind gust.mod\n- harsh wind gust.mod\n- menu no thanks.mod\n- nuh-uh.mod\n- "
  },
  {
    "path": "Music/SFX/Squeal Door.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:d642d01bde056b9dde96f2db0892c870367143a973b77aaede4da5aad0d62598\ns"
  },
  {
    "path": "Music/SFX/Vibration Alarm.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:273b092cb200ef7db676ee1201fe51cc4784688bdeacbf0f4b1862749b188a0c\ns"
  },
  {
    "path": "Music/SFX/fast wind gust.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:2564a4027e797db9e137d9652b5176f0fe7a62d52050e62f34fa79128d6f6604\ns"
  },
  {
    "path": "Music/SFX/harsh wind gust.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:7a675746f33b888ffe2e0a2ff14b263e9024ae799d582c6b8b9ddbf7fbc43f11\ns"
  },
  {
    "path": "Music/SFX/menu no thanks.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:3ad05a0df0f623b6c010df4ee88ded0ef45a3befcacdeb36f83c3a83a17b3655\ns"
  },
  {
    "path": "Music/SFX/nuh-uh.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:bc821f64e788366e75e772cf5d7c301e5d7ab8a0dbe856775c205f5c3bb004ca\ns"
  },
  {
    "path": "Music/SFX/odd open inventory.mod",
    "chars": 129,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:66c8de97f55b06cb43d1311d27dc8eb5139786b6f1e1369c13ff900d7777ae91\ns"
  },
  {
    "path": "Music/SFX/old telephone 1.mod",
    "chars": 129,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:cb2548ef582331d2e3a5ad82fee78e55815b9efd940bbe9b30356a3f599c60d4\ns"
  },
  {
    "path": "Music/SFX/racecar zoom.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:725acda9ff7dbdb6112375f71579b4614185ed555a5c6afc51696e0ecb05818c\ns"
  },
  {
    "path": "Music/SFX/smb3okay.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:2637e719b28dd0d2738a19595be9edef3d13c0b177f5293dafe29979a9f0c55b\ns"
  },
  {
    "path": "Music/Spooky/Detective Intro.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:a7f78cafc7ea94e0cc34adc372a441b8e1dce0da3bcb8f1ebc6d1835803ceeea\ns"
  },
  {
    "path": "Music/Spooky/Short Hauntings.mod",
    "chars": 130,
    "preview": "version https://git-lfs.github.com/spec/v1\noid sha256:05fb02ac54fa87a1cb2bd361c4601792e6598c66ba6b08634f18a8e6044f243f\ns"
  },
  {
    "path": "README.md",
    "chars": 3040,
    "preview": "![alt text](https://github.com/DeerTears/GB-Studio-Community-Assets/blob/master/titlecard_july11_2019.png \"GB Studio Com"
  },
  {
    "path": "Scripts/Camera/Screenscroll/screenscroll_scene_init.txt",
    "chars": 733,
    "preview": "{\r\n    \"script\": [\r\n        {\r\n            \"id\": \"b7afdf6b-72a5-4f4e-9bd2-a057d047364e\",\r\n            \"command\": \"EVENT_"
  },
  {
    "path": "Scripts/Camera/Screenscroll/screenscroll_trigger.txt",
    "chars": 7892,
    "preview": "{\r\n    \"script\": [\r\n        {\r\n            \"id\": \"90830cb2-a146-4193-ac7b-857432bece89\",\r\n            \"command\": \"EVENT_"
  },
  {
    "path": "Scripts/Camera/break camera from player.txt",
    "chars": 428,
    "preview": "{\r\n    \"script\": [\r\n        {\r\n            \"id\": \"b7afdf6b-72a5-4f4e-9bd2-a057d047364e\",\r\n            \"command\": \"EVENT_"
  },
  {
    "path": "Sprites/Animated/README.md",
    "chars": 1025,
    "preview": "# Animated Non-Actor Sprites\n\nBy TommySezSoWhat\n- `d20_anim.png`: Rolling D20 animation.\n- `music_notes.png`: Scrolling "
  },
  {
    "path": "Sprites/Static/Cats/README.md",
    "chars": 368,
    "preview": "# Cat Sprites\n\nA set of 7 static cat sprites based on the cat sprite from the GB Studio demo.\n\n- Smudgie: `t_cat_calico_"
  },
  {
    "path": "Sprites/Static/README.md",
    "chars": 101,
    "preview": "# Static Sprites\n\nBy Kalyen\n- `Log_1.png`\n- `Portrait_girl_1.png`: Portrait for use in dialog boxes.\n"
  },
  {
    "path": "Tilesets/Credits.md",
    "chars": 333,
    "preview": "Old Halls by AFI - Created by AFI#8956 on the community Discord, uploaded by DeerTears. Distributed with permission.  \nF"
  },
  {
    "path": "UI/README.md",
    "chars": 945,
    "preview": "# Credits:\n\n## Cursors\n\n**Chris Maltby:**\n\n- `default cursor.png`\n\n**AstraLee:**\n\n- `SkyrimCursor.png` - \"Designed simil"
  }
]

About this extraction

This page contains the full source code of the DeerTears/GB-Studio-Community-Assets GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 113 files (71.7 KB), approximately 29.0k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!