Shining Force II Hacking: SF2 Disassembly Tool Suite

General thread for quick links, status reports and support

A place for Shining Force 2 hack discussion, editing tools, new hacks etc.

Moderator: Shining Moderators

User avatar
Earl
Shining Legend
Shining Legend
Posts: 3018
Joined: Sat Apr 24 2004 6:39am
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Earl »

Oh, that would be fantastic. Getting the weapon to sit properly in a hand without a preview is such obnoxious trial and error : D
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Spoiler
Quick question just in case anybody already knows :
For each frame of an animation entry, the first byte is supposed to represent the battlesprite frame index to use for this animation frame.
But in the very first ally animation entry, I notice that one frame uses value "15" ($0F) to point to battlesprite frame 3, instead of just "3".
Does anybody know why, and what kind of extra-piece of information is contained in this "15" value ?
EDIT : Nevermind, just found out ! Battlesprite frame value $0F means you keep using the same Battlesprite frame from previous animation frame.

Here are BNC's notes about battlesprite animations :
EDIT : updated with my discoveries

Code: Select all

------ Ally Battle Sprite Animation Format

Byte 0      number of frames in attack anim
Byte 1      frame # to start spell anim idx
Byte 2      spell anim idx to play during attack, FF for none
Byte 3      whether or not to terminate spell anim when battle sprite anim finishes
Byte 4      weapon sprite frame for idle animation frame 1
Byte 5      weapon sprite z-index for idle animation frame 1
Byte 6      weapon sprite x offset for idle animation frame 1
Byte 7      weapon sprite y offset for idle animation frame 1

Frame Entries
First entry can be idle anim frame 2 if current battle sprite has one.
(Some battlesprites seem to have an idle frame 2 even when it's identical to idle frame 1 !)

    Byte 0      battlesprite frame idx (if value $0F, then keep using battlesprite frame from previous animation frame)
    Byte 1      number of display frames to display (60 frames per second)
    Byte 2      battle sprite x offset
    Byte 3      battle sprite y offset
    Byte 4      weapon sprite frame (0 = up, going clockwise, up to 3; 0x10 = flip horizontally, 0x20 = flip vertically)
    Byte 5      weapon sprite z-index (1 = under character, 2 = over character)
    Byte 6      weapon sprite x offset
    Byte 7      weapon sprite y offset
    
Note : Weapon sprites offsets are relative to current battlesprite position.
In any case I'll release a W.I.P. version of SF2BattleSpriteAnimationEditor tonight for people to play with it and help me figure out the remaining unknown bits.

Earl you'll be glad to know that the preview feature is quite effective, with immediate update for any property change. :)

Edit :
Got to manage a thing or two (allies with no weapons, preview animation ...) and I'll do a first 0.1.0 release.
Enemy animation will have to wait a bit ! :)

Last edit for tonight :
OK, here it is, supposedly fully operational for ally battlesprites.
I'll work on enemy battlesprites next, and maybe a GIF export feature for fun.

https://github.com/ShiningForceCentral/ ... ses/latest

Image

Also included in SF2DISASM now, in the intended folder : disasm\data\graphics\battles\battlesprites\.

Feedback is welcome, please tell me if anything is unclear or wrong.
User avatar
Diego_Didakus
Shining Hero
Shining Hero
Posts: 615
Joined: Wed May 05 2010 2:48pm
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Diego_Didakus »

This frame for starting spell actually works? I see the logic here but I think in game the spell animation is always the same as attack animation.
Check out my projects: https://quasarcorpsgame.com.br/

Speaking...tires me.
Fighting...tires me
I'm tired.
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Indeed the game seems to use the same battlesprite attack animation for a simple attack or a spell cast.
I believe it may be a matter of context :
- if it's an attack, then ignore spell-related properties.
- if it's a spell (or a special attack, I guess), then apply spell properties.

But I'll have to look further into it, I still don't know where the animations are linked to ally/enemy data.


EDIT :
New release with enemy support :
https://github.com/ShiningForceCentral/ ... /tag/1.1.0
Image

Also included in SF2DISASM's last revision.

That should be enough for this tool now, I'll check what else I can do in terms of graphics-related tools before switching to map-related work.
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Thanks MXC !

And quick news just to let you guys know that I'm making progress in the map department :

Image

http://img110.xooimage.com/files/6/f/d/ ... 3798a2.png

Blocks and map layouts (with exploration flags) can now be decompressed and recompressed properly, so the technical ground is here and waiting to be used to its full potential with a proper GUI editor.

So I think the next step now is for me to literally copy BNC's nice map layout editor from The Caravan. :shifty:


EDIT 24/11 :
Basic editor features are implemented :
- Similar to The Caravan, left and right clicks act as block slots taken from the blockset and applied to the map.
- Middle click on the map allows to copy selected map block's graphics AND flags (obstructed, stairs, warp ...)
- Undo button which is quite convenient, I hope to find the way to implement a ctrl+z shortcut ASAP.
This is already a lot of fun to play with and I can't wait to release something with every flags managed properly ! :)
User avatar
greyskies
Shining Member
Shining Member
Posts: 438
Joined: Wed Feb 02 2011 11:55am
Location: Seebenstein, Austria
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by greyskies »

Yes yes yes! This is looking great!
.
Check out Return to Grans - A Shining Force II hack which features a completely
reworked story, numerous visual improvements, and tons of balance changes.

Also available as storymode hack only.
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Here it is, first map-related tool for SF2 Disassemblies : SF2MapLayoutManager-1.0.0 ! :)

https://github.com/ShiningForceCentral/ ... /tag/1.0.0

Image

This may not mean much to anybody since The Caravan already does all that, but considering this relies on 3 compression schemes at the same time (graphics, blockset and layout), I'm really proud and relieved to have achieved those technical steps, with a lot of future tools which will benefit from it. :)

I included a little "Help" section inside, this time. Here's the current explanation :
Spoiler
- Blockset panel :
Left-Click or Right-Click to copy block graphics from blockset.
- Map :
- Block mode :
- Left-Click or Right-Click to apply copied block.
- Middle-Click to copy map block graphics AND exploration flags.
Then apply with left click.
- Middle-Click drag and release to copy rectangular zone.
Then use left click to apply.
- Exploration flags mode :
- Obstructed block flag :
Left click to make block obstructed.
Middle and right clicks to remove flag.
- Stairs flags :
Left click for upstairs going left.
Right click for upstairs going right.
Middle click to remove flag.
This tool only takes care of exploration flags.
Action flags are ignored and left as is for other specific tools to handle them.
This is a lot of fun to use, especially with the "section copy" feature when you drag and release the middle-click button.
EDIT : I'm still struggling with my shitty Java GUI coding skills so only the "Undo" button works at the moment, no "Ctrl+Z" shortcut yet I'm afraid. :damnit:

This release is included in SF2DISASM's last revision in disasm\data\maps\. (Download link)
Please, play with it and tell me if anything goes wrong.
Any feedback will be appreciated !
User avatar
Corsair
Shining Legend
Shining Legend
Posts: 7336
Joined: Mon Apr 21 2008 2:52am
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Corsair »

Any idea if it'll handle the maps that, if edited in caravan make the game screwy?
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Theoretically there should be no problem as these bugs were specific to The Caravan, I believe.

Let's have fun and make some checks !

Reminder of Stordarth's great research :
Spoiler
Map Definitions Issues

1. Editing/Saving corrupts the block arrangements in certain maps:
Tested in both the hacked and a fresh SF2 rom. Same result.
Despite other maps using the same tilesets, these maps seem to save normally. No error message is ever given regarding this.

2. Opening: Opening some edited maps after saving gives this error:
Traceback (most recent call last):
File "layouttree.pyc", line 266, in OnActivateTreeItem
File "maps.pyc", line 1650, in changeMap
File "rom.pyc", line 1103, in getMaps
File "rom.pyc", line 1251, in mapSubroutine
IndexError: list index out of range

3. Save Process: Saving some maps gives the following error:
Traceback (most recent call last):
File "caravan.py", line 845, in OnSave
File "caravan.py", line 1047, in saveFile
File "rom.pyc", line 2935, in writeAllData
File "rom.pyc", line 3347, in writeMaps
File "rom.pyc", line 2773, in writeBytes
TypeError: Odd-length string

4. Save Process: Saving some maps instead gives this error:
Traceback (most recent call last):
File "caravan.py", line 845, in OnSave
File "caravan.py", line 1047, in saveFile
File "rom.pyc", line 2935, in writeAllData
File "rom.pyc", line 3323, in writeMaps
File "rom.pyc", line 2869, in reformDataSection
File "data.pyc", line 76, in raw_hexlify
File "data.pyc", line 637, in hexlify
File "data.pyc", line 676, in
ValueError: max() arg is an empty sequence

After testing all maps, here is the summary:

1. Block Glitches after saving: 17, 19, 20, 33, 40, 47, 62, 65, 66, 74
2. Traceback Error from above: 4, 7, 10, 23, 24*, 46*
3. Maps that do not save after: 25
4. Maps that do not save either: 38, 39, 53, 78
*Gave error without actually being edited. In a fresh rom, open normally. Keyed to a different map that was previously edited possibly?

Bad maps: 4, 7, 10, 17, 19, 20, 23, 24, 25, 33, 38, 39, 40, 46, 47, 53, 62, 65, 66, 74, 78.
Usable Maps: 0, 1, 2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 21, 22, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 63, 64, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77.
So according to Stor's summary :

1. Modified map 65 (intro cutscene castle map) with no problem :
Spoiler
Image
Image
2. Modified secret village map 23 ... and export crashes ! Woah :shock:
From a first quick analysis, it looks like this map's blockset has some blocks which point to a VDP tile outside from the map tilesets range ! It actually points to the last tile of the game's base tileset, just before the beginning of map tilesets, hence the "-1" value which neither The Caravan or SF2MapBlockManager could process properly.
Even without modification, producing the original blockset crashes.
I'll just make my code more secure for the moment, let's see ... OK, quick-fixed, I could save and re-open some edits making secret places more accessible.
I didn't test it ingame though, as I don't know how to visit the secret village quickly. Any suggestion is welcome !
Spoiler
ImageYou can see some of the problematic blocks on top and bottom of the map's bottom layer : empty tiles among green ones.
3. Editing, saving map 25 and re-opening it works with no problem, though I can't quickly access Ketto to verify in game.

4. Same for map 38 which was ok with my edits, save and re-open.


Looks like all is OK now, I'll release a new version 1.0.1.
Let me know if something else is wrong with map 23, as I really don't know why such blocks would have any good reason to point to that empty last tile from the base tileset, and my quick-fix might not be the most robust solution to handle this map's particularities.

1.0.1 : https://github.com/ShiningForceCentral/ ... /tag/1.0.1

SF2DISASM also updated.

Thanks for the good question, Corsair. ;)


EDIT :
I opened/edited/saved more than 25 maps and discovered a similar bug that I fixed.
I also decided to change the way input paths are organized to avoid having to input the same map id several times when all you need is to put it once and work in that same directory for everything. Now this is quite simple and efficient.

I built an expanded ROM with all the new maps, and everything seems to work like a charm, though I could only go check maps which are quickly available at the beginning of the game.

Hence, new release 1.1.0 !
https://github.com/ShiningForceCentral/ ... /tag/1.1.0

EDIT : Tested on real hardware, no problem.
Next test : edit first battle map and see if Caravan still allows to edit the battle properly.

EDIT : It works ! The Caravan is able to edit battles of a disassembly build !
BNC, if you read this, well done for making The Caravan dynamic enough for such use case. :)
Spoiler
Image
ImageImage
EDIT :
Fixed and polished file path management to process both absolute and relative paths seamlessly.
https://github.com/ShiningForceCentral/ ... /tag/1.1.1

EDIT 07/12 :
I'm now making progress on SF2MapEditor which should allow to edit anything from the map entry structure : layout, exploration, block copies, items and animations.
Only items and animations remain to be implemented before I make my first release, hopefully in a few days.
User avatar
MXC
1090
Shining Legend
Posts: 27345
Joined: Fri Sep 17 2004 1:48am
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by MXC »

Don't forget that you can bump this topic after 24 hours of no additional response (you won't be able to again until someone else posts though) or that you can send me a Slack message to bump this thread :)
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Thank you for the tip MXC, I didn't know that !

Well, that should do for the moment with SF2MapEditor, I believe it to be operational-enough for me to share it and wait for possible bug-reports while I think about what to do next.
So here it is, release 1.0.0 !
https://github.com/ShiningForceCentral/ ... /tag/1.0.0

Image

As usual, also included in SF2DISASM's last revision :
https://github.com/ShiningForceCentral/ ... master.zip

I find it quite fun to use and I hope to have some feedback to make sure this is properly working for everybody. ;)
User avatar
greyskies
Shining Member
Shining Member
Posts: 438
Joined: Wed Feb 02 2011 11:55am
Location: Seebenstein, Austria
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by greyskies »

I will definitely try this out as soon as I've got some free time!
.
Check out Return to Grans - A Shining Force II hack which features a completely
reworked story, numerous visual improvements, and tons of balance changes.

Also available as storymode hack only.
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Quick update to say that most of the graphics-related tools now support GIF format, along with PNG.

My own experimentations made me realize that while editing existing graphics could be quite simple (export, edit, import), importing brand new images can be really tricky, mostly because of one constraint : color index 0 must be kept for transparency only.

It looks like most image editing software don't care that much about giving control on that aspect, and PNG-8 (i.e. with indexed colors) seem to have not so much support compared to GIF, which has indexed colors by definition.

So yeah, even though PNG-8 is considered as the recommended format in general, GIF may still be a little more convenient to use, and BNC was absolutely right to keep using this format in the Caravan. :)

As usual, SF2DISASM has been updated with latest versions of all updated tools.
The SF2 Disassembly Super Thread / sf2hack Discord / Currently not available for tech support (sorry!)
User avatar
xenometal
Shining Member
Shining Member
Posts: 439
Joined: Tue Mar 28 2006 3:05am
Location: Canada
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by xenometal »

I get an error when building the latest version.

Code: Select all

SN 68k version 2.53

D:\SF2DISASM-MASTER\DISASM\DATA\GRAPHICS\PORTRAITS\ENTRIES.ASM(77) : Error : Could not open file 'data/graphics/portraits/newportrait17.bin'
portrait17: incbin 'data/graphics/portraits/newportrait17.bin'
Errors during pass 1 - pass 2 aborted
Assembly completed.
1 error(s) from 228389 lines in 0.33 seconds
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Woah, sorry for that, and thank you for the feedback ! I just pushed the fix.

My working directory is a constant mess with experimentations here and there, and I may push wrong stuff from time to time without noticing ... so I really appreciate feedback if anything wrong happens or even simply if the 2MB build isn't bit-perfect ! ;)

I can't even check the bit-perfect build properly right now I'm afraid (yeah I don't even use branches, I'm a lazy Git user ! :D I really should start using that), so I hope that'll do the trick !


UPDATE :
Here's SF2BattleEditor-1.0.0 :
Image

You can edit :
- Basic map coordinates : map index, camera boundaries etc.
- Terrain data
- Ally and enemy spritesets along with AI regions and AI points.

Please note :
- Depending on your hardware, loading data can take a VERY LONG time, with the "Import" button stuck until everything is loaded. This is mainly because ALL mapsprites are pre-loaded. If this is really a problem for some people, please tell me and I'll work on optimizing this.
- Some parts of enemy data (including AI region types) still have to be properly labelled, formatted, or even just figured out first. Any help on understanding all of enemy data is welcome !
- Neutral entities cannot be edited from this tool. I may work on it but for the moment, editing the dedicated ASM file will do. (disasm/data/battles/global/battleneutralentities.asm)
- This first version's ergonomics are rough, editing stuff may be too tedious as is. I can't spend too much time on making this easy and funny to play with, so that will do the job for now, but any suggestion about reasonable ergonomic features will be taken into consideration. ;)

As usual, this is now available in SF2DISASM, in the "disasm/data/battles/" directory.


EDIT : Cannot bump the thread myself anymore, please someone post something ! :D

Music Banks are now parsed into ASM macros to describe the music commands :
https://github.com/ShiningForceCentral/ ... musicbank0

Code: Select all

; ASM FILE music01.asm :
; 0x89C9..0x9FA9 : Music 01
Music_1:        db 0
		db 0
		db 0
		db 0C2h
		dw Music_1_Channel_0
		dw Music_1_Channel_1
		dw Music_1_Channel_2
		dw Music_1_Channel_3
		dw Music_1_Channel_4
		dw Music_1_Channel_5
		dw Music_1_Channel_6
		dw Music_1_Channel_7
		dw Music_1_Channel_9
		dw Music_1_Channel_9
Music_1_Channel_0:
		  stereo 0C0h
		  setRelease 01h
		  vibrato 02Ch
		        waitL 21
		mainLoopStart
		repeatStart
		  inst 13
		  vol 0Ch
		        noteL D6,30
		  vol 09h
		        noteL D6,6
		  vol 0Ch
		        note  D6
		        note  D6
		        note  Ds6
		  vol 09h
		        note  Ds6
		  vol 0Ch
		        noteL Ds6,18
		  vol 09h
		        noteL Ds6,6
		  vol 0Ch
		        note  Ds6
		  vol 09h
		        note  Ds6
		  vol 0Ch
		repeatSection1Start
		        noteL C6,6
		  vol 09h
		        note  C6
		  vol 0Ch
		        noteL C6,18
		  vol 09h
		        noteL C6,6
		  vol 0Ch
		        note  C6
		  vol 09h
		        note  C6
		  vol 0Ch
		        note  F6
		  vol 09h
		        note  F6
		  vol 0Ch
		        noteL F6,30
		  vol 09h
		        noteL F6,6
		repeatEnd
		repeatSection2Start
		        noteL C6,6
		  vol 09h
		        note  C6
		  vol 0Ch
		        note  C6
		  vol 09h
		        note  C6
		  vol 07h
		        note  C6
		  vol 05h
		        note  C6
		  vol 0Ch
		        noteL F6,60
		  vol 09h
		        noteL F6,6
		  vol 07h
		        note  F6
		  inst 27
		  vol 0Ah
		        noteL A4,12
		        noteL As4,6
		        wait
		        note  F5
		        wait
		        noteL E5,36
		        noteL C5,6
		        wait
		        note  D5
		        wait
		        noteL A5,24
		        noteL G5,6
		        wait
		        note  E5
		        wait
		        note  C5
		        wait
		        noteL D5,24
		        waitL 12
		        note  A4
		        noteL As4,6
		        wait
		        note  F5
		        wait
		        note  E5
		        wait
		        noteL C5,12
		        noteL D5,6
		        wait
		        note  A5
		        wait
		        noteL C6,36
		        noteL G5,6
		        wait
		        noteL F5,48
		        waitL 12
		  inst 26
		  vol 0Dh
		        note  D5
		        note  Ds5
		        note  As5
		        noteL A5,36
		        noteL G5,12
		        note  F5
		        noteL C6,24
		        noteL As5,12
		        noteL A5,16
		        note  G5
		        note  A5
		countedLoopStart 1
		        noteL As5,36
		        noteL Gs5,6
		        note  Fs5
		countedLoopEnd
		        noteL As5,48
		        note  C6
		  vol 0Ah
		        noteL C6,6
		  vol 06h
		        note  C6
		  inst 13
		  vol 0Ch
		        noteL A5,12
		        noteL As5,6
		  vol 09h
		        note  As5
		  vol 0Ch
		        note  F6
		  vol 09h
		        note  F6
		  vol 0Ch
		        noteL E6,36
		        noteL C6,6
		  vol 09h
		        note  C6
		  vol 0Ch
		        note  D6
		  vol 09h
		        note  D6
		  vol 0Ch
		        noteL A6,24
		        noteL G6,6
		  vol 09h
		        note  G6
		  vol 0Ch
		        note  E6
		  vol 09h
		        note  E6
		  vol 0Ch
		        note  C6
		  vol 09h
		        note  C6
		  vol 0Ch
		        noteL D6,24
		  vol 09h
		        noteL D6,6
		  vol 07h
		        note  D6
		  vol 0Ch
		        noteL A5,12
		        noteL As5,6
		  vol 09h
		        note  As5
		  vol 0Ch
		        note  F6
		  vol 09h
		        note  F6
		  vol 0Ch
		        note  E6
		  vol 09h
		        note  E6
		  vol 0Ch
		        noteL C6,12
		        noteL D6,6
		  vol 09h
		        note  D6
		  vol 0Ch
		        note  A6
		  vol 09h
		        note  A6
		  vol 0Ch
		        noteL C7,36
		        noteL G6,6
		  vol 09h
		        note  G6
		  vol 0Ch
		        noteL F6,30
		  vol 09h
		        noteL F6,6
		  inst 26
		  vol 0Ch
		        note  A6
		  vol 08h
		        note  A6
		  vol 0Ch
		        noteL A6,12
		        note  G6
		        note  A6
		        noteL As6,24
		        noteL A6,12
		        note  F6
		        note  G6
		        note  As5
		  vol 08h
		        noteL As5,6
		  vol 0Ch
		        note  C6
		        noteL C6,60
		        noteL C6,6
		        note  As5
		  vol 08h
		        note  As5
		  vol 06h
		        note  As5
		  vol 0Dh
		        noteL A5,12
		        note  As5
		        noteL F6,18
		  vol 09h
		        noteL F6,6
		  vol 0Dh
		        noteL C6,12
		        note  D6
		        noteL A6,18
		  vol 09h
		        noteL A6,6
		  vol 0Dh
		        noteL D6,12
		        note  Ds6
		        noteL D7,24
		        note  C7
		  vol 09h
		        noteL C7,12
		  vol 05h
		        note  C7
		  inst 27
		  vol 0Ah
		        note  Cs6
		        noteL C6,6
		        wait
		        note  G5
		        wait
		        note  Gs5
		        wait
		        noteL Ds5,24
		        noteL F5,6
		        wait
		        noteL As4,72
		        noteL A4,24
		        waitL 12
		        note  G4
		        noteL Gs4,6
		        wait
		        note  F5
		        wait
		        note  Ds5
		        wait
		        noteL As4,24
		        noteL C5,6
		        wait
		        noteL Gs5,72
		        noteL Fs5,24
		        waitL 12
		  inst 56
		  vol 0Ch
		        note  B5
		        noteL As5,6
		  vol 09h
		        note  As5
		  vol 0Ch
		        note  F5
		  vol 09h
		        note  F5
		  vol 0Ch
		        note  Fs5
		  vol 09h
		        note  Fs5
		  vol 0Ch
		        noteL D5,24
		        noteL Ds5,6
		  vol 09h
		        note  Ds5
		  vol 0Ch
		        noteL As4,72
		        noteL Gs4,24
		  vol 09h
		        noteL Gs4,6
		  vol 07h
		        note  Gs4
		  vol 0Ch
		        noteL E5,12
		        noteL Fs5,6
		  vol 09h
		        note  Fs5
		  vol 0Ch
		        noteL Cs6,18
		  vol 09h
		        noteL Cs6,6
		  vol 0Ch
		        noteL A5,12
		        noteL B5,6
		  vol 09h
		        note  B5
		  vol 0Ch
		        noteL Fs6,18
		  vol 09h
		        noteL Fs6,6
		  vol 0Ch
		        note  B5
		  vol 09h
		        note  B5
		  vol 0Ch
		        noteL Fs6,18
		        noteL B5,6
		        noteL Fs6,36
		        noteL E6,6
		  vol 09h
		        note  E6
		  inst 13
		  vol 0Ch
		        noteL Fs5,30
		  vol 09h
		        noteL Fs5,6
		  vol 0Ch
		        note  Fs5
		        note  Fs5
		        note  Gs5
		  vol 09h
		        note  Gs5
		  vol 0Ch
		        noteL Gs5,18
		  vol 09h
		        noteL Gs5,6
		  vol 0Ch
		        note  Gs5
		  vol 09h
		        note  Gs5
		  vol 0Ch
		        noteL A5,84
		  vol 09h
		        noteL A5,6
		  vol 07h
		        note  A5
		  vol 0Ch
		        noteL A5,30
		  vol 09h
		        noteL A5,6
		  vol 0Ch
		        note  A5
		        note  A5
		        note  B5
		  vol 09h
		        note  B5
		  vol 0Ch
		        noteL B5,18
		  vol 09h
		        noteL B5,6
		  vol 0Ch
		        note  B5
		  vol 09h
		        note  B5
		  vol 0Ch
		        noteL Cs6,84
		  vol 09h
		        noteL Cs6,6
		  vol 07h
		        note  Cs6
		  inst 45
		countedLoopStart 1
		  vol 0Ch
		        noteL Cs6,6
		        note  B5
		        note  Fs5
		        note  B5
		        note  Fs6
		  vol 08h
		        note  Fs6
		countedLoopEnd
		  vol 0Ch
		        noteL Cs6,6
		        note  B5
		countedLoopStart 1
		  vol 0Ch
		        noteL Cs6,6
		        note  B5
		        note  E5
		        note  A5
		        note  Fs6
		  vol 08h
		        note  Fs6
		countedLoopEnd
		  vol 0Ch
		        noteL Cs6,6
		        note  B5
		countedLoopStart 1
		  vol 0Ch
		        noteL Cs6,6
		        note  B5
		        note  Fs5
		        note  D6
		        note  Fs6
		  vol 08h
		        note  Fs6
		countedLoopEnd
		  vol 0Ch
		        noteL D6,6
		        note  Fs6
		        note  Gs6
		        note  Fs6
		        note  Gs6
		        note  Cs7
		        note  Cs6
		  vol 08h
		        note  Cs6
		  vol 0Ch
		        note  Fs6
		        note  E6
		        note  B5
		  vol 08h
		        note  B5
		  vol 0Ch
		        note  D6
		        note  Cs6
		        note  B5
		        note  A5
		        note  E5
		        note  A5
		  inst 26
		countedLoopStart 1
		  vol 0Bh
		        noteL Cs6,6
		        note  B5
		        note  Fs5
		        note  B5
		        note  Fs6
		  vol 07h
		        note  Fs6
		countedLoopEnd
		  vol 0Bh
		        noteL Cs6,6
		        note  B5
		countedLoopStart 1
		  vol 0Bh
		        noteL Cs6,6
		        note  B5
		        note  E5
		        note  A5
		        note  Fs6
		  vol 07h
		        note  Fs6
		countedLoopEnd
		  vol 0Bh
		        noteL Cs6,6
		        note  B5
		countedLoopStart 1
		  vol 0Bh
		        noteL Cs6,6
		        note  B5
		        note  Fs5
		        note  D6
		        note  Fs6
		  vol 07h
		        note  Fs6
		countedLoopEnd
		  vol 0Bh
		        noteL D6,6
		        note  Fs6
		        note  Gs6
		        note  Fs6
		        note  Gs6
		        note  Cs7
		        note  Cs6
		  vol 07h
		        note  Cs6
		  vol 0Bh
		        note  Fs6
		        note  E6
		        note  B5
		  vol 07h
		        note  B5
		  vol 0Bh
		        note  E6
		        note  D6
		        note  C6
		        note  As5
		        note  Gs5
		        note  As5
		        note  B5
		        note  Cs6
		        note  Ds6
		        note  F6
		        note  Fs6
		        note  Gs6
		        note  As6
		        note  B6
		repeatStart
		  inst 13
		  vol 0Ch
		        noteL Cs6,6
		        note  Cs6
		        note  Cs6
		  vol 09h
		        note  Cs6
		  inst 27
		  vol 0Ah
		repeatSection1Start
		        noteL Cs5,8
		        waitL 4
		        note  C5
		  setRelease 04h
		        noteL C5,8
		        note  C5
		        note  As4
		        note  Gs4
		  setRelease 01h
		        noteL As4,24
		repeatEnd
		repeatSection2Start
		        noteL Fs5,8
		        waitL 4
		        note  F5
		  setRelease 04h
		        noteL F5,8
		        note  F5
		        note  Ds5
		        note  Cs5
		  setRelease 01h
		        noteL Ds5,24
		  inst 13
		  vol 0Ch
		        noteL Cs6,30
		  vol 09h
		        noteL Cs6,6
		  vol 0Ch
		        note  Cs6
		        note  Cs6
		        noteL Cs6,8
		  vol 09h
		        note  Cs6
		  vol 0Ch
		        note  Cs6
		  vol 09h
		        note  Cs6
		  vol 0Ch
		        note  Cs6
		  vol 09h
		        note  Cs6
		        waitL 12
		  inst 27
		  vol 0Ah
		        note  Fs4
		        noteL Gs4,6
		        wait
		        note  F5
		        wait
		        note  Ds5
		        wait
		        noteL As4,12
		        noteL C5,6
		        waitL 12
		        noteL Gs5,6
		        noteL Fs5,96
		mainLoopEnd
Music_1_Channel_1:
		  stereo 0C0h
		  setRelease 01h
		  vibrato 02Ch
		        waitL 21
		mainLoopStart
		        waitL 24
		  inst 3
		  vol 0Ch
		        note  As2
		        wait
		        note  F2
		        wait
		        note  Cs3
		        wait
		        noteL Fs2,6
		        wait
		        noteL B2,12
		        waitL 24
		        note  As2
		        wait
		        note  F2
		        noteL Fs2,6
		        wait
		        note  Fs2
		        waitL 18
		        noteL B2,60
		countedLoopStart 1
		        noteL As2,6
		        wait
		        note  As2
		        waitL 18
		        noteL As2,6
		        waitL 18
		        noteL As2,6
		        waitL 18
		        noteL As2,6
		        note  As2
		countedLoopEnd
		        noteL As2,6
		        wait
		        note  As2
		        waitL 18
		        noteL As2,6
		        waitL 18
		        noteL As2,6
		        wait
		        noteL As2,24
		        noteL A2,6
		        wait
		        note  A2
		        waitL 18
		        noteL A2,6
		        note  A2
		        note  D3
		        wait
		        note  A2
		        wait
		        noteL D3,24
		        noteL C3,6
		        wait
		        note  C3
		        waitL 18
		        noteL C3,6
		        waitL 18
		        noteL C3,6
		        waitL 18
		        noteL C3,6
		        note  C3
		        note  As2
		        wait
		        note  As2
		        waitL 18
		        noteL As2,6
		        wait
		        note  As2
		        wait
		        note  As2
		        wait
		        noteL As2,24
		        noteL Gs2,48
		        note  E3
		        note  F3
		        note  F2
		countedLoopStart 1
		        noteL As2,6
		        wait
		        note  As2
		        waitL 18
		        noteL As2,6
		        waitL 18
		        noteL As2,6
		        waitL 18
		        noteL As2,6
		        note  As2
		countedLoopEnd
		        noteL As2,6
		        wait
		        note  As2
		        waitL 18
		        noteL As2,6
		        waitL 18
		        noteL As2,6
		        waitL 18
		        noteL As2,6
		        wait
		        note  A2
		        wait
		        note  A2
		        waitL 18
		        noteL A2,6
		        wait
		        note  D3
		        wait
		        note  A2
		        wait
		        noteL D3,24
		        noteL Ds3,6
		        wait
		        note  Ds3
		        waitL 18
		        noteL Ds3,6
		        waitL 18
		        noteL Ds3,6
		        waitL 18
		        noteL Ds3,6
		        note  Ds3
		        note  Gs2
		        wait
		        note  Gs2
		        waitL 18
		        noteL Gs2,6
		        waitL 18
		        noteL Gs2,6
		        wait
		        noteL Gs2,24
		        noteL G2,30
		        waitL 6
		        note  G2
		        wait
		        noteL D3,30
		        waitL 6
		        note  D3
		        wait
		        noteL Ds3,30
		        waitL 6
		        note  Ds3
		        wait
		        note  Gs2
		        wait
		  inst 38
		  vol 0Ch
		        noteL Gs3,12
		        note  Fs3
		        note  Ds3
		        noteL Cs3,72
		        noteL Ds3,12
		        note  F3
		        noteL Fs3,60
		        noteL Gs3,24
		        noteL Fs3,12
		        noteL Cs3,72
		        noteL Ds3,12
		        note  F3
		        noteL Fs3,60
		        noteL Gs3,24
		        noteL As3,12
		        noteL B3,72
		        noteL Cs3,12
		        note  Ds3
		        noteL E3,72
		        noteL Fs3,12
		        note  E3
		        noteL D3,48
		        note  G3
		        note  C3
		        note  F3
		  inst 3
		  vol 0Ch
		        waitL 24
		        note  B2
		        wait
		        note  A2
		  setRelease 08h
		        noteL G2,12
		        note  A2
		        note  B2
		        note  Cs3
		        note  D3
		        note  E3
		        note  Fs3
		        note  G3
		  setRelease 01h
		        waitL 24
		        note  D3
		        wait
		        note  Cs3
		  setRelease 08h
		        noteL B2,12
		        note  Cs3
		        note  Ds3
		        note  E3
		        note  Fs3
		        note  Gs3
		        note  As3
		        note  B3
		  setRelease 01h
		  inst 56
		  vol 0Ch
		        noteL D4,60
		  vol 09h
		        noteL D4,12
		  vol 0Ch
		        noteL D4,6
		        note  D4
		        noteL Cs4,60
		  vol 09h
		        noteL Cs4,12
		  vol 0Ch
		        noteL Cs4,6
		  vol 09h
		        note  Cs4
		  vol 0Ch
		        noteL Gs4,60
		  vol 09h
		        noteL Gs4,12
		  vol 0Ch
		        noteL Gs4,6
		        note  Gs4
		        noteL A4,72
		  setRelease 08h
		  inst 3
		  vol 0Ch
		        noteL A3,12
		        note  E3
		        note  D3
		        note  D3
		        wait
		        note  D3
		        wait
		        note  D3
		        note  D3
		        note  Cs3
		        note  Cs3
		        wait
		        note  Cs3
		        wait
		        note  Cs3
		        note  Cs3
		        note  Gs3
		        note  Gs3
		        wait
		        note  Gs3
		        wait
		        note  Gs3
		        note  Gs3
		        note  A2
		        note  A3
		        note  G2
		        note  G3
		        note  F2
		        note  F3
		        note  Ds2
		        note  Ds3
		  setRelease 01h
		        noteL Cs3,48
		countedLoopStart 1
		        noteL B2,6
		        note  B2
		        note  B2
		        waitL 78
		countedLoopEnd
		        noteL E2,48
		        noteL Fs2,8
		        wait
		        note  Fs2
		        wait
		        note  Fs2
		        waitL 32
		        noteL Gs2,168
		mainLoopEnd
Music_1_Channel_2:
		  stereo 0C0h
		  setRelease 01h
		  vibrato 02Ch
		        waitL 21
		mainLoopStart
		repeatStart
		  inst 13
		  vol 0Bh
		        noteL C6,30
		  vol 08h
		        noteL C6,6
		  vol 0Bh
		        note  C6
		        note  C6
		        note  As5
		  vol 08h
		        note  As5
		  vol 0Bh
		        noteL As5,18
		  vol 08h
		        noteL As5,6
		  vol 0Bh
		        note  As5
		  vol 08h
		        note  As5
		  vol 0Bh
		repeatSection1Start
		        noteL Gs5,6
		  vol 08h
		        note  Gs5
		  vol 0Bh
		        noteL Gs5,18
		  vol 08h
		        noteL Gs5,6
		  vol 0Bh
		        note  Gs5
		  vol 08h
		        note  Gs5
		  vol 0Bh
		        note  As5
		  vol 08h
		        note  As5
		  vol 0Bh
		        noteL As5,30
		  vol 08h
		        noteL As5,6
		repeatEnd
		repeatSection2Start
		        noteL Gs5,6
		  vol 08h
		        note  Gs5
		  vol 0Bh
		        note  Gs5
		  vol 08h
		        note  Gs5
		  vol 06h
		        note  Gs5
		  vol 04h
		        note  Gs5
		  vol 0Bh
		        noteL As5,36
		        noteL Gs5,24
		  vol 0Ah
		        noteL F6,6
		  vol 07h
		        note  F6
		countedLoopStart 2
		  vol 0Ah
		        noteL F6,6
		  vol 07h
		        note  F6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL F6,6
		        note  F6
		        note  G6
		  vol 07h
		        note  G6
		countedLoopStart 2
		  vol 0Ah
		        noteL G6,6
		  vol 07h
		        note  G6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL G6,6
		        note  G6
		        note  F6
		  vol 07h
		        note  F6
		countedLoopStart 1
		  vol 0Ah
		        noteL F6,6
		  vol 07h
		        note  F6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL F6,6
		  vol 07h
		        note  F6
		  vol 0Ah
		        noteL G6,24
		  vol 0Ah
		        noteL E6,6
		  vol 07h
		        note  E6
		  vol 0Ah
		        note  E6
		  vol 07h
		        note  E6
		        waitL 12
		  vol 0Ah
		        noteL E6,6
		        note  E6
		        note  F6
		  vol 07h
		        note  F6
		  vol 0Ah
		        note  F6
		  vol 07h
		        note  F6
		  vol 0Ah
		        noteL F6,24
		  inst 44
		  vol 0Ah
		        noteL G6,6
		  vol 07h
		        note  G6
		countedLoopStart 2
		  vol 0Ah
		        noteL G6,6
		  vol 07h
		        note  G6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL G6,6
		        note  G6
		        note  A6
		  vol 07h
		        note  A6
		  vol 0Bh
		        note  A6
		  vol 07h
		        note  A6
		        waitL 12
		  vol 0Bh
		        noteL A6,6
		  vol 07h
		        note  A6
		countedLoopStart 1
		  vol 0Ah
		        noteL F6,6
		  vol 07h
		        note  F6
		countedLoopEnd
		  vol 0Ah
		        noteL F6,24
		  inst 13
		  vol 0Ah
		        note  Fs5
		        note  Fs6
		        note  Fs5
		        note  Fs6
		        noteL G5,36
		        noteL G6,6
		        note  G6
		        noteL A5,12
		  vol 0Bh
		        noteL A6,6
		  vol 09h
		        note  A6
		        waitL 12
		  vol 0Bh
		        noteL A6,6
		  vol 09h
		        note  A6
		  inst 26
		  vol 0Bh
		        note  F5
		  vol 07h
		        note  F5
		countedLoopStart 2
		  vol 0Bh
		        noteL F5,6
		  vol 07h
		        note  F5
		        waitL 12
		countedLoopEnd
		  vol 0Bh
		        noteL F5,6
		        note  F5
		        note  G5
		  vol 07h
		        note  G5
		countedLoopStart 2
		  vol 0Bh
		        noteL G5,6
		  vol 07h
		        note  G5
		        waitL 12
		countedLoopEnd
		  vol 0Bh
		        noteL G5,6
		        note  G5
		        note  F5
		  vol 07h
		        note  F5
		countedLoopStart 2
		  vol 0Bh
		        noteL F5,6
		  vol 07h
		        note  F5
		        waitL 12
		countedLoopEnd
		  vol 0Bh
		        noteL G5,6
		  vol 07h
		        note  G5
		  vol 0Bh
		        note  E5
		  vol 07h
		        note  E5
		  vol 0Bh
		        note  E5
		  vol 07h
		        note  E5
		        waitL 12
		  vol 0Bh
		        noteL E5,6
		  vol 07h
		        note  E5
		  vol 0Bh
		        note  F5
		  vol 07h
		        note  F5
		  vol 0Bh
		        note  F5
		  vol 07h
		        note  F5
		  vol 0Bh
		        noteL F5,24
		  inst 44
		  vol 0Ah
		        noteL G6,6
		  vol 07h
		        note  G6
		countedLoopStart 2
		  vol 0Ah
		        noteL G6,6
		  vol 07h
		        note  G6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL G6,6
		        note  G6
		countedLoopStart 1
		  vol 0Ah
		        noteL Fs6,6
		  vol 07h
		        note  Fs6
		countedLoopEnd
		        waitL 12
		  vol 0Ah
		        noteL Fs6,6
		  vol 07h
		        note  Fs6
		  inst 16
		  vol 0Ch
		        noteL As6,18
		        noteL C7,6
		        noteL C7,24
		  inst 26
		  vol 0Bh
		        noteL As5,30
		  vol 07h
		        noteL As5,6
		  vol 0Bh
		        note  As5
		  vol 07h
		        note  As5
		  vol 0Bh
		        noteL C6,30
		  vol 07h
		        noteL C6,6
		  vol 0Bh
		        note  C6
		  vol 07h
		        note  C6
		  vol 0Bh
		        noteL D6,30
		  vol 07h
		        noteL D6,6
		  vol 0Bh
		        noteL D6,4
		  vol 07h
		        noteL D6,8
		  vol 0Bh
		        noteL Ds6,24
		        note  C6
		  inst 26
		countedLoopStart 1
		  vol 0Ah
		        noteL Cs7,6
		        note  Gs6
		        note  G6
		        note  Gs6
		        note  Cs7
		  vol 07h
		        note  Cs7
		countedLoopEnd
		  vol 0Ah
		        noteL Cs7,6
		        note  Gs6
		        note  F6
		        note  Cs6
		  inst 54
		countedLoopStart 1
		  vol 0Ah
		        noteL Fs6,6
		        note  Cs6
		        note  C6
		        note  Cs6
		        note  Fs6
		  vol 07h
		        note  Fs6
		countedLoopEnd
		  vol 0Ah
		        noteL Fs6,6
		        note  Cs6
		        note  As5
		        note  Fs5
		  inst 26
		countedLoopStart 1
		  vol 0Ah
		        noteL F6,6
		        note  Cs6
		        note  Gs5
		        note  Cs6
		        note  F6
		  vol 07h
		        note  F6
		countedLoopEnd
		  vol 0Ah
		        noteL F6,6
		        note  Cs6
		        note  Gs5
		        note  F6
		  inst 54
		countedLoopStart 1
		  vol 0Ah
		        noteL Cs6,6
		        note  As5
		        note  A5
		        note  As5
		        note  Cs6
		  vol 07h
		        note  Cs6
		countedLoopEnd
		  vol 0Ah
		        noteL Cs6,6
		        note  C6
		        note  Cs6
		        note  F6
		  inst 26
		countedLoopStart 1
		  vol 0Ah
		        noteL B6,6
		        note  Fs6
		        note  F6
		        note  Fs6
		        note  B6
		  vol 07h
		        note  B6
		countedLoopEnd
		  vol 0Ah
		        noteL B6,6
		        note  Fs6
		        note  E6
		        note  Ds6
		  inst 54
		countedLoopStart 1
		  vol 0Ah
		        noteL E6,6
		        note  B5
		        note  As5
		        note  B5
		        note  E6
		  vol 07h
		        note  E6
		countedLoopEnd
		  vol 0Ah
		        noteL E6,6
		        note  B5
		        note  As5
		        note  B5
		  inst 26
		  vol 0Bh
		        noteL Fs5,48
		        note  G5
		        note  B5
		        note  A5
		  inst 13
		  vol 0Bh
		        noteL Ds5,30
		  vol 08h
		        noteL Ds5,6
		  vol 0Bh
		        note  Ds5
		        note  Ds5
		        note  E5
		  vol 08h
		        note  E5
		  vol 0Bh
		        noteL E5,18
		  vol 08h
		        noteL E5,6
		  vol 0Bh
		        note  E5
		  vol 08h
		        note  E5
		  vol 0Bh
		        noteL Fs5,84
		  vol 08h
		        noteL Fs5,6
		  vol 06h
		        note  Fs5
		  vol 0Bh
		        noteL Fs5,30
		  vol 08h
		        noteL Fs5,6
		  vol 0Bh
		        note  Fs5
		        note  Fs5
		        note  Gs5
		  vol 08h
		        note  Gs5
		  vol 0Bh
		        noteL Gs5,18
		  vol 08h
		        noteL Gs5,6
		  vol 0Bh
		        note  Gs5
		  vol 08h
		        note  Gs5
		  vol 0Bh
		        noteL As5,84
		  vol 08h
		        noteL As5,6
		  vol 06h
		        note  As5
		  inst 54
		repeatStart
		  vol 0Bh
		        noteL E5,6
		  vol 07h
		        note  E5
		countedLoopStart 1
		  vol 0Bh
		        noteL E5,6
		  vol 07h
		        note  E5
		        waitL 12
		countedLoopEnd
		countedLoopStart 1
		  vol 0Bh
		        noteL E5,6
		  vol 07h
		        note  E5
		countedLoopEnd
		repeatSection1Start
		repeatEnd
		repeatSection2Start
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		countedLoopStart 1
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		        waitL 12
		countedLoopEnd
		countedLoopStart 1
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		countedLoopEnd
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		countedLoopStart 2
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		        waitL 12
		countedLoopEnd
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		repeatStart
		  inst 26
		countedLoopStart 5
		  vol 0Bh
		        noteL E5,6
		  vol 07h
		        note  E5
		countedLoopEnd
		  vol 0Bh
		        noteL E5,12
		repeatSection1Start
		repeatEnd
		repeatSection2Start
		countedLoopStart 5
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		countedLoopEnd
		  vol 0Bh
		        noteL D5,12
		  vol 07h
		        noteL D5,6
		        wait
		  vol 0Bh
		        note  E5
		  vol 07h
		        note  E5
		        waitL 12
		  vol 0Bh
		        noteL Fs5,6
		  vol 07h
		        note  Fs5
		        waitL 12
		  vol 0Bh
		        noteL E5,6
		  vol 07h
		        note  E5
		        waitL 12
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		  vol 0Bh
		        noteL Gs5,48
		repeatStart
		  inst 13
		  vol 0Ch
		        noteL As5,6
		        note  As5
		        note  As5
		  vol 09h
		        note  As5
		  inst 27
		  vol 0Ah
		repeatSection1Start
		        noteL As4,6
		        wait
		        noteL Gs4,4
		  setRelease 04h
		        noteL Gs4,8
		        note  Gs4
		        note  Fs4
		        note  F4
		  setRelease 01h
		        noteL Fs4,24
		repeatEnd
		repeatSection2Start
		        noteL Ds5,6
		        wait
		        noteL Cs5,4
		  setRelease 04h
		        noteL Cs5,8
		        note  Cs5
		        note  B4
		        note  As4
		  setRelease 01h
		        noteL B4,24
		  inst 13
		  vol 0Ch
		        noteL Gs5,30
		  vol 09h
		        noteL Gs5,6
		  vol 0Ch
		        note  Gs5
		        note  Gs5
		countedLoopStart 2
		  vol 0Ch
		        noteL Gs5,8
		  vol 09h
		        note  Gs5
		countedLoopEnd
		        waitL 90
		  vol 0Ch
		        noteL Cs6,6
		        noteL Cs6,96
		mainLoopEnd
Music_1_Channel_3:
		  stereo 0C0h
		  setRelease 01h
		  vibrato 02Ch
		        waitL 21
		mainLoopStart
		repeatStart
		  inst 13
		  vol 0Bh
		        noteL F5,30
		  vol 08h
		        noteL F5,6
		  vol 0Bh
		        note  F5
		        note  F5
		        note  Gs5
		  vol 08h
		        note  Gs5
		  vol 0Bh
		        noteL Gs5,18
		  vol 08h
		        noteL Gs5,6
		  vol 0Bh
		        note  Gs5
		  vol 08h
		        note  Gs5
		  vol 0Bh
		repeatSection1Start
		        noteL Ds5,6
		  vol 08h
		        note  Ds5
		  vol 0Bh
		        noteL Ds5,18
		  vol 08h
		        noteL Ds5,6
		  vol 0Bh
		        note  Ds5
		  vol 08h
		        note  Ds5
		  vol 0Bh
		        note  Cs5
		  vol 08h
		        note  Cs5
		  vol 0Bh
		        noteL Cs5,30
		  vol 08h
		        noteL Cs5,6
		repeatEnd
		repeatSection2Start
		        noteL Ds5,6
		  vol 08h
		        note  Ds5
		  vol 0Bh
		        note  Ds5
		  vol 08h
		        note  Ds5
		  vol 06h
		        note  Ds5
		  vol 04h
		        note  Ds5
		  vol 0Bh
		        noteL Cs5,60
		  vol 0Ah
		        noteL D6,6
		  vol 07h
		        note  D6
		countedLoopStart 2
		  vol 0Ah
		        noteL D6,6
		  vol 07h
		        note  D6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL D6,6
		        note  D6
		        note  E6
		  vol 07h
		        note  E6
		countedLoopStart 2
		  vol 0Ah
		        noteL E6,6
		  vol 07h
		        note  E6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL E6,6
		        note  E6
		  vol 0Ah
		        note  D6
		  vol 07h
		        note  D6
		countedLoopStart 1
		  vol 0Ah
		        noteL D6,6
		  vol 07h
		        note  D6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL D6,6
		  vol 07h
		        note  D6
		  vol 0Ah
		        noteL E6,24
		        noteL C6,6
		  vol 07h
		        note  C6
		  vol 0Ah
		        note  C6
		  vol 07h
		        note  C6
		        waitL 12
		  vol 0Ah
		        noteL C6,6
		        note  C6
		        note  D6
		  vol 07h
		        note  D6
		  vol 0Ah
		        note  D6
		  vol 07h
		        note  D6
		  vol 0Ah
		        noteL D6,24
		  inst 44
		  vol 0Ah
		        noteL Ds6,6
		  vol 07h
		        note  Ds6
		countedLoopStart 2
		  vol 0Ah
		        noteL Ds6,6
		  vol 07h
		        note  Ds6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL Ds6,6
		        note  Ds6
		        note  D6
		  vol 07h
		        note  D6
		  vol 0Ah
		        note  D6
		  vol 07h
		        note  D6
		        waitL 12
		countedLoopStart 2
		  vol 0Ah
		        noteL D6,6
		  vol 07h
		        note  D6
		countedLoopEnd
		  vol 0Ah
		        noteL D6,24
		  inst 13
		  vol 0Ah
		        note  Ds5
		        note  Ds6
		        note  D5
		        note  D6
		        noteL Ds5,36
		        noteL Ds6,6
		        note  Ds6
		        noteL F5,12
		  vol 0Bh
		        noteL F6,6
		  vol 09h
		        note  F6
		        waitL 12
		  vol 0Bh
		        noteL F6,6
		  vol 09h
		        note  F6
		  inst 26
		  vol 0Bh
		        note  D5
		  vol 07h
		        note  D5
		countedLoopStart 2
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		        waitL 12
		countedLoopEnd
		  vol 0Bh
		        noteL D5,6
		        note  D5
		        note  E5
		  vol 07h
		        note  E5
		countedLoopStart 2
		  vol 0Bh
		        noteL E5,6
		  vol 07h
		        note  E5
		        waitL 12
		countedLoopEnd
		  vol 0Bh
		        noteL E5,6
		        note  E5
		        note  D5
		  vol 07h
		        note  D5
		countedLoopStart 2
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		        waitL 12
		countedLoopEnd
		  vol 0Bh
		        noteL E5,6
		  vol 07h
		        note  E5
		  vol 0Bh
		        note  C5
		  vol 07h
		        note  C5
		  vol 0Bh
		        note  C5
		  vol 07h
		        note  C5
		        waitL 12
		  vol 0Bh
		        noteL C5,6
		  vol 07h
		        note  C5
		  vol 0Bh
		        note  D5
		  vol 07h
		        note  D5
		  vol 0Bh
		        note  D5
		  vol 07h
		        note  D5
		  vol 0Bh
		        noteL D5,24
		  inst 44
		  vol 0Ah
		        noteL Ds6,6
		  vol 07h
		        note  Ds6
		countedLoopStart 2
		  vol 0Ah
		        noteL Ds6,6
		  vol 07h
		        note  Ds6
		        waitL 12
		countedLoopEnd
		  vol 0Ah
		        noteL Ds6,6
		        note  Ds6
		countedLoopStart 1
		  vol 0Ah
		        noteL Ds6,6
		  vol 07h
		        note  Ds6
		countedLoopEnd
		        waitL 12
		  vol 0Ah
		        noteL Ds6,6
		  vol 07h
		        note  Ds6
		  inst 16
		  vol 0Ch
		        noteL Fs6,18
		        noteL Gs6,6
		        noteL Gs6,24
		  inst 26
		  vol 0Bh
		        note  G5
		  inst 61
		  vol 0Dh
		        note  C3
		  inst 26
		  vol 0Bh
		        note  F5
		  inst 61
		  vol 0Dh
		        note  C3
		  inst 26
		  vol 0Bh
		        note  G5
		  inst 61
		  vol 0Dh
		        note  C3
		  inst 26
		  vol 0Bh
		        note  Fs5
		  inst 61
		  vol 0Dh
		        note  C3
		        waitL 6
		  shifting 020h
		  stereo 080h
		  inst 26
		countedLoopStart 1
		  vol 09h
		        noteL Cs7,6
		        note  Gs6
		        note  G6
		        note  Gs6
		        note  Cs7
		  vol 06h
		        note  Cs7
		countedLoopEnd
		  vol 09h
		        noteL Cs7,6
		        note  Gs6
		        note  F6
		        note  Cs6
		  inst 54
		countedLoopStart 1
		  vol 09h
		        noteL Fs6,6
		        note  Cs6
		        note  C6
		        note  Cs6
		        note  Fs6
		  vol 06h
		        note  Fs6
		countedLoopEnd
		  vol 09h
		        noteL Fs6,6
		        note  Cs6
		        note  As5
		        note  Fs5
		  inst 26
		countedLoopStart 1
		  vol 09h
		        noteL F6,6
		        note  Cs6
		        note  Gs5
		        note  Cs6
		        note  F6
		  vol 06h
		        note  F6
		countedLoopEnd
		  vol 09h
		        noteL F6,6
		        note  Cs6
		        note  Gs5
		        note  F6
		  inst 54
		countedLoopStart 1
		  vol 09h
		        noteL Cs6,6
		        note  As5
		        note  A5
		        note  As5
		        note  Cs6
		  vol 06h
		        note  Cs6
		countedLoopEnd
		  vol 09h
		        noteL Cs6,6
		        note  C6
		        note  Cs6
		        note  F6
		  inst 26
		countedLoopStart 1
		  vol 09h
		        noteL B6,6
		        note  Fs6
		        note  F6
		        note  Fs6
		        note  B6
		  vol 06h
		        note  B6
		countedLoopEnd
		  vol 09h
		        noteL B6,6
		        note  Fs6
		        note  E6
		        note  Ds6
		  inst 54
		countedLoopStart 1
		  vol 09h
		        noteL E6,6
		        note  B5
		        note  As5
		        note  B5
		        note  E6
		  vol 06h
		        note  E6
		countedLoopEnd
		  vol 09h
		        noteL E6,6
		        note  B5
		        note  As5
		  shifting 00h
		  stereo 0C0h
		  inst 26
		  vol 0Bh
		        noteL A4,48
		        note  B4
		        note  C5
		        note  C5
		  inst 13
		  vol 0Ch
		        noteL B4,30
		  vol 09h
		        noteL B4,6
		  vol 0Ch
		        note  B4
		        note  B4
		        note  B4
		  vol 09h
		        note  B4
		  vol 0Ch
		        noteL B4,18
		  vol 09h
		        noteL B4,6
		  vol 0Ch
		        note  B4
		  vol 09h
		        note  B4
		  vol 0Ch
		        noteL D5,84
		  vol 09h
		        noteL D5,6
		  vol 07h
		        note  D5
		  vol 0Ch
		        noteL D5,30
		  vol 09h
		        noteL D5,6
		  vol 0Ch
		        note  D5
		        note  D5
		        note  E5
		  vol 09h
		        note  E5
		  vol 0Ch
		        noteL E5,18
		  vol 09h
		        noteL E5,6
		  vol 0Ch
		        note  E5
		  vol 09h
		        note  E5
		  vol 0Ch
		        noteL Fs5,84
		  vol 09h
		        noteL Fs5,6
		  vol 07h
		        note  Fs5
		  inst 54
		  vol 0Bh
		        note  D5
		  vol 07h
		        note  D5
		countedLoopStart 1
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		        waitL 12
		countedLoopEnd
		countedLoopStart 1
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		countedLoopEnd
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		countedLoopStart 1
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		        waitL 12
		countedLoopEnd
		countedLoopStart 1
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		countedLoopEnd
		  vol 0Bh
		        noteL B4,6
		  vol 07h
		        note  B4
		countedLoopStart 1
		  vol 0Bh
		        noteL B4,6
		  vol 07h
		        note  B4
		        waitL 12
		countedLoopEnd
		countedLoopStart 1
		  vol 0Bh
		        noteL B4,6
		  vol 07h
		        note  B4
		countedLoopEnd
		  vol 0Bh
		        noteL A4,6
		  vol 07h
		        note  A4
		countedLoopStart 2
		  vol 0Bh
		        noteL A4,6
		  vol 07h
		        note  A4
		        waitL 12
		countedLoopEnd
		  vol 0Bh
		        noteL A4,6
		  vol 07h
		        note  A4
		  inst 26
		countedLoopStart 5
		  vol 0Bh
		        noteL D5,6
		  vol 07h
		        note  D5
		countedLoopEnd
		  vol 0Bh
		        noteL D5,12
		countedLoopStart 5
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		countedLoopEnd
		  vol 0Bh
		        noteL Cs5,12
		countedLoopStart 5
		  vol 0Bh
		        noteL B4,6
		  vol 07h
		        note  B4
		countedLoopEnd
		  vol 0Bh
		        noteL B4,12
		        wait
		  vol 0Bh
		        noteL Cs5,6
		  vol 07h
		        note  Cs5
		        waitL 12
		  vol 0Bh
		        noteL B4,6
		  vol 07h
		        note  B4
		        waitL 12
		  vol 0Bh
		        noteL A4,6
		  vol 07h
		        note  A4
		        waitL 12
		  vol 0Bh
		        noteL G4,6
		  vol 07h
		        note  G4
		  vol 0Bh
		        noteL F4,48
		repeatStart
		  stereo 0C0h
		  inst 13
		  vol 0Ch
		        noteL Fs5,6
		        note  Fs5
		        note  Fs5
		  vol 09h
		        note  Fs5
		        wait
		  shifting 020h
		  stereo 080h
		  inst 27
		  vol 09h
		repeatSection1Start
		        noteL As4,6
		        wait
		        noteL Gs4,4
		  setRelease 04h
		        noteL Gs4,8
		        note  Gs4
		        note  Fs4
		        note  F4
		  setRelease 01h
		        noteL Fs4,18
		  shifting 00h
		repeatEnd
		repeatSection2Start
		        noteL Ds5,6
		        wait
		        noteL Cs5,4
		  setRelease 04h
		        noteL Cs5,8
		        note  Cs5
		        note  B4
		        note  As4
		  setRelease 01h
		        noteL B4,18
		  shifting 00h
		  stereo 0C0h
		  inst 13
		  vol 0Ch
		        noteL Ds5,30
		  vol 09h
		        noteL Ds5,6
		  vol 0Ch
		        note  Ds5
		        note  Ds5
		countedLoopStart 2
		  vol 0Ch
		        noteL Ds5,8
		  vol 09h
		        note  Ds5
		countedLoopEnd
		        waitL 90
		  vol 0Ch
		        noteL As5,6
		        noteL As5,96
		mainLoopEnd
Music_1_Channel_4:
[removing this channel's content because of post size limit]

Music_1_Channel_5:
		  stereo 0C0h
		        waitL 21
		mainLoopStart
		        waitL 24
		        sampleL 0,48
		        sample  0
		        sample  0
		        sampleL 0,12
		        sampleL 0,36
		        sampleL 0,48
		        sampleL 0,24
		        sampleL 2,6
		        sample  3
		        sampleL 2,12
		        sample  0
		        sampleL 2,24
		        sampleL 4,3
		        sample  4
		        sample  3
		        sample  3
		        sampleL 2,6
		        sample  4
		        sample  2
		        sample  2
		repeatStart
		countedLoopStart 4
		        sampleL 3,6
		        sample  4
		        sampleL 3,12
		        sample  4
		        sampleL 3,6
		        sampleL 4,12
		        sampleL 4,6
		        sampleL 3,12
		        sample  4
		        sampleL 3,6
		        sample  4
		countedLoopEnd
		        sampleL 3,6
		        sample  4
		        sampleL 3,12
		        sample  4
		        sampleL 3,6
		        sampleL 4,12
		        sampleL 4,6
		        sampleL 3,12
		        sampleL 4,6
		        sample  4
		        sample  3
		        sample  3
		repeatSection1Start
		        sampleL 2,24
		        sampleL 0,22
		        sampleL 4,1
		        sample  3
		        sampleL 2,24
		        sample  0
		        sampleL 0,6
		        sample  3
		        sample  3
		        sample  2
		        sampleL 2,3
		        sample  3
		        sample  4
		        sample  4
		        sampleL 2,6
		        sampleL 3,12
		        sampleL 3,6
		        sample  2
		        sampleL 3,12
		        sampleL 3,6
		        sampleL 2,12
		repeatEnd
		repeatSection2Start
		countedLoopStart 1
		        sampleL 2,24
		        sampleL 0,22
		        sampleL 4,1
		        sample  3
		        sampleL 2,24
		        sample  0
		countedLoopEnd
		countedLoopStart 2
		        sampleL 0,36
		        sampleL 2,6
		        sample  3
		        sample  2
		        sample  3
		        sampleL 2,3
		        sample  3
		        sample  4
		        sample  4
		        sampleL 2,12
		        sampleL 2,6
		        sample  3
		        waitL 36
		        sampleL 2,6
		        sample  3
		        sample  2
		        sample  3
		        sampleL 2,3
		        sample  3
		        sample  4
		        sample  4
		        sampleL 2,24
		countedLoopEnd
		repeatStart
		        sampleL 0,6
		        sample  3
		        sampleL 2,3
		        sample  3
		        sample  4
		        sample  4
		        sampleL 2,12
		        sampleL 2,6
		        sample  3
		repeatSection1Start
		        sampleL 0,12
		        sampleL 2,6
		        sample  3
		        sample  2
		        sample  3
		        sampleL 2,3
		        sample  3
		        sample  4
		        sample  4
		repeatEnd
		repeatSection2Start
		        sampleL 4,6
		        sample  2
		        sample  4
		        sample  4
		        sample  3
		        sample  3
		        sample  2
		        sample  2
		countedLoopStart 1
		        waitL 24
		        sampleL 0,12
		        sampleL 2,6
		        sampleL 3,18
		        sampleL 2,12
		        sample  0
		        sample  2
		        sample  0
		        sample  4
		        sample  4
		        sample  4
		        sample  3
		        sample  3
		        sample  2
		        sample  2
		countedLoopEnd
		        waitL 84
		        wait
		        wait
		        waitL 96
		countedLoopStart 2
		        sampleL 3,6
		        sample  4
		        sampleL 3,12
		        sample  4
		        sampleL 3,6
		        sampleL 4,12
		        sampleL 4,6
		        sampleL 3,12
		        sampleL 3,6
		        sample  4
		countedLoopEnd
		        sampleL 3,12
		        sample  4
		        sample  3
		        sampleL 3,6
		        sample  4
		        sampleL 3,12
		        sampleL 3,6
		        sample  4
		        sample  3
		        sample  4
		        sample  3
		        sample  2
		        sampleL 0,24
		        sampleL 4,3
		        sample  4
		        sample  4
		        sample  4
		        sample  3
		        sample  3
		        sample  3
		        sample  3
		countedLoopStart 1
		        sampleL 5,6
		        sample  3
		        sampleL 2,60
		        sampleL 1,24
		countedLoopEnd
		        sampleL 0,22
		        sampleL 4,1
		        sample  3
		        sampleL 2,23
		        sampleL 4,1
		        sampleL 5,15
		        sampleL 4,1
		        sampleL 5,15
		        sampleL 4,1
		        sampleL 5,16
		        waitL 24
		        sampleL 0,66
		        sampleL 1,6
		        sampleL 0,48
		        sampleL 2,6
		        sampleL 2,3
		        sample  3
		        sample  3
		        sample  4
		        sampleL 2,6
		        sampleL 2,24
		mainLoopEnd
Music_1_Channel_6:
		  psgInst 07Ch
		  setRelease 01h
		  vibrato 04Ch
		        psgNoteL F4,3
		        psgNote  G4
		        psgNote  A4
		        psgNote  As4
		        psgNote  C5
		        psgNote  D5
		        psgNote  Ds5
		mainLoopStart
		countedLoopStart 23
		        psgNoteL F5,3
		        psgNote  G5
		countedLoopEnd
		        psgNoteL F5,3
		        psgNote  Ds5
		        psgNote  Cs5
		        psgNote  B4
		        psgNote  As4
		        psgNote  Gs4
		        psgNote  Fs4
		        psgNote  F4
		        psgNote  Ds4
		        psgNote  F4
		        psgNote  Fs4
		        psgNote  Gs4
		        psgNote  As4
		        psgNote  B4
		        psgNote  Cs5
		        psgNote  Ds5
		countedLoopStart 15
		        psgNoteL F5,3
		        psgNote  G5
		countedLoopEnd
		        psgNoteL F5,3
		        psgNote  Ds5
		        psgNote  Cs5
		        psgNote  C5
		        psgNote  As4
		        psgNote  Gs4
		        psgNote  Fs4
		        psgNote  F4
		        psgNote  Ds4
		        psgNote  F4
		        psgNote  Fs4
		        psgNote  Gs4
		        psgNote  As4
		        psgNote  C5
		        psgNote  Cs5
		        psgNote  Ds5
		countedLoopStart 2
		        psgNoteL F5,3
		        psgNote  Ds5
		        psgNote  Cs5
		        psgNote  B4
		countedLoopEnd
		        psgNoteL As4,3
		        psgNote  Gs4
		        psgNote  Fs4
		        psgNote  F4
		repeatStart
		  psgInst 07Ah
		countedLoopStart 7
		        psgNoteL D3,6
		        psgNote  F3
		countedLoopEnd
		countedLoopStart 7
		        psgNoteL E3,6
		        psgNote  G3
		countedLoopEnd
		countedLoopStart 5
		        psgNoteL D3,6
		        psgNote  F3
		countedLoopEnd
		countedLoopStart 5
		        psgNoteL E3,6
		        psgNote  G3
		countedLoopEnd
		  psgInst 07Ch
		        psgNoteL A3,6
		        psgNote  E3
		        psgNote  F3
		        psgNote  A3
		repeatSection1Start
		        psgNoteL Cs4,6
		        psgNote  D4
		        psgNote  F4
		        psgNote  A4
		  psgInst 07Ah
		countedLoopStart 7
		        psgNoteL Ds3,6
		        psgNote  G3
		countedLoopEnd
		countedLoopStart 7
		        psgNoteL D3,6
		        psgNote  F3
		countedLoopEnd
		  psgInst 07Bh
		        psgNoteL As2,6
		        psgNote  C3
		        psgNote  Ds3
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  C4
		        psgNote  Ds4
		        psgNote  Fs4
		        psgNote  A2
		        psgNote  As2
		        psgNote  D3
		        psgNote  Fs3
		        psgNote  A3
		        psgNote  As3
		        psgNote  D4
		        psgNote  Fs4
		        psgNote  G4
		        psgNote  Ds4
		        psgNote  C4
		        psgNote  As3
		        psgNote  C4
		        psgNote  As3
		        psgNote  C4
		        psgNote  Ds4
		        psgNote  A4
		        psgNote  F4
		        psgNote  Ds4
		        psgNote  C4
		        psgNote  As3
		        psgNote  A3
		        psgNote  F3
		        psgNote  C3
		repeatEnd
		repeatSection2Start
		        psgNoteL D4,6
		        psgNote  A3
		        psgNote  F3
		        psgNote  D3
		  psgInst 07Ah
		countedLoopStart 7
		        psgNoteL F3,6
		        psgNote  G3
		countedLoopEnd
		countedLoopStart 7
		        psgNoteL Ds3,6
		        psgNote  F3
		countedLoopEnd
		  psgInst 07Bh
		countedLoopStart 2
		        psgNoteL As2,6
		        psgNote  D3
		countedLoopEnd
		        psgNoteL F3,6
		        psgNote  G3
		countedLoopStart 2
		        psgNoteL C3,6
		        psgNote  D3
		countedLoopEnd
		        psgNoteL F3,6
		        psgNote  A3
		countedLoopStart 2
		        psgNoteL D3,6
		        psgNote  Ds3
		countedLoopEnd
		        psgNoteL G3,6
		        psgNote  As3
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  C4
		        psgNote  Ds4
		        psgNote  Fs4
		        psgNote  As4
		  psgInst 07Dh
		        psgNote  Cs5
		        psgNote  Ds5
		        psgNoteL F5,108
		        psgNoteL Ds5,12
		        psgNote  Cs5
		        psgNote  A4
		        psgNote  As4
		        psgNoteL C5,24
		        psgNoteL Cs5,12
		        psgNoteL Gs4,108
		        psgNoteL C4,12
		        psgNote  Cs4
		        psgNoteL As4,24
		        psgNoteL Gs4,12
		        psgNoteL As4,8
		        psgNote  B4
		        psgNote  Cs5
		        psgNoteL Ds5,108
		        psgNoteL Cs5,12
		        psgNote  B4
		        psgNote  G4
		        psgNote  Gs4
		        psgNoteL As4,24
		        psgNoteL B4,12
		        psgNoteL Cs5,48
		        psgNote  D5
		        psgNote  E5
		        psgNoteL C3,6
		        psgNote  E3
		        psgNote  A3
		        psgNote  C4
		        psgNote  E4
		        psgNote  A4
		        psgNote  C5
		        psgNote  E5
		        psgNote  Ds4
		        psgNote  B3
		        psgNote  Fs3
		        psgNote  B3
		        psgNoteL Ds4,4
		        waitL    8
		        psgNoteL Ds4,6
		        psgNote  Ds4
		        psgNote  E4
		        psgNote  B3
		        psgNote  Gs3
		        psgNote  B3
		        psgNoteL E4,4
		        waitL    8
		        psgNoteL E4,4
		        waitL    8
		        psgNoteL Fs4,6
		        psgNote  D4
		        psgNote  A3
		        psgNote  D4
		        psgNote  Fs4
		        psgNote  D4
		        psgNote  A3
		        psgNote  D4
		        psgNote  Fs4
		        psgNote  D4
		        psgNote  D5
		        psgNote  A4
		        psgNote  Fs4
		        psgNote  D4
		        psgNote  A3
		        psgNote  Fs3
		        psgNote  Fs4
		        psgNote  D4
		        psgNote  A3
		        psgNote  D4
		        psgNoteL Fs4,4
		        waitL    8
		        psgNoteL Fs4,6
		        psgNote  Fs4
		        psgNote  Gs4
		        psgNote  E4
		        psgNote  B3
		        psgNote  E4
		        psgNoteL Gs4,4
		        waitL    8
		        psgNoteL Gs4,4
		        waitL    8
		countedLoopStart 1
		        psgNoteL As4,6
		        psgNote  Fs4
		        psgNote  Cs4
		        psgNote  Fs4
		countedLoopEnd
		        psgNoteL As4,6
		        psgNote  Fs4
		        psgNote  Fs5
		        psgNote  Cs5
		        psgNote  As4
		        psgNote  Fs4
		        psgNote  Cs4
		        psgNote  As3
		countedLoopStart 7
		  psgInst 00h
		        waitL    102
		countedLoopEnd
		  psgInst 07Ch
		        psgNoteL Cs3,4
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  Cs4
		        psgNote  Fs4
		        psgNote  As4
		  psgInst 00h
		        waitL    72
		  psgInst 07Ch
		        psgNoteL Ds3,4
		        psgNote  Fs3
		        psgNote  B3
		        psgNote  Ds4
		        psgNote  Fs4
		        psgNote  B4
		  psgInst 00h
		        waitL    96
		        waitL    24
		  psgInst 07Ch
		countedLoopStart 11
		        psgNoteL Cs3,3
		        psgNote  Ds3
		countedLoopEnd
		        psgNoteL Cs3,3
		        psgNote  Ds3
		        psgNote  F3
		        psgNote  Fs3
		        psgNote  Gs3
		        psgNote  As3
		        psgNote  Gs3
		        psgNote  Fs3
		        psgNote  F3
		        psgNote  Fs3
		        psgNote  Gs3
		        psgNote  As3
		        psgNote  C4
		        psgNote  Cs4
		        psgNote  C4
		        psgNote  As3
		        psgNote  Gs3
		        psgNote  As3
		        psgNote  C4
		        psgNote  Cs4
		        psgNote  Ds4
		        psgNote  F4
		        psgNote  Ds4
		        psgNote  Cs4
		        psgNote  Ds4
		        psgNote  F4
		        psgNote  Fs4
		        psgNote  Gs4
		        psgNote  As4
		        psgNote  C5
		        psgNote  Cs5
		        psgNote  Ds5
		mainLoopEnd
Music_1_Channel_7:
		  psgInst 00h
		        waitL    9
		  shifting 010h
		  psgInst 07Ah
		  setRelease 01h
		  vibrato 04Ch
		        psgNoteL F4,3
		        psgNote  G4
		        psgNote  A4
		        psgNote  As4
		        psgNote  C5
		        psgNote  D5
		        psgNote  Ds5
		mainLoopStart
		countedLoopStart 23
		        psgNoteL F5,3
		        psgNote  G5
		countedLoopEnd
		        psgNoteL F5,3
		        psgNote  Ds5
		        psgNote  Cs5
		        psgNote  B4
		        psgNote  As4
		        psgNote  Gs4
		        psgNote  Fs4
		        psgNote  F4
		        psgNote  Ds4
		        psgNote  F4
		        psgNote  Fs4
		        psgNote  Gs4
		        psgNote  As4
		        psgNote  B4
		        psgNote  Cs5
		        psgNote  Ds5
		countedLoopStart 15
		        psgNoteL F5,3
		        psgNote  G5
		countedLoopEnd
		        psgNoteL F5,3
		        psgNote  Ds5
		        psgNote  Cs5
		        psgNote  C5
		        psgNote  As4
		        psgNote  Gs4
		        psgNote  Fs4
		        psgNote  F4
		        psgNote  Ds4
		        psgNote  F4
		        psgNote  Fs4
		        psgNote  Gs4
		        psgNote  As4
		        psgNote  C5
		        psgNote  Cs5
		        psgNote  Ds5
		countedLoopStart 2
		        psgNoteL F5,3
		        psgNote  Ds5
		        psgNote  Cs5
		        psgNote  B4
		countedLoopEnd
		        psgNoteL As4,3
		  shifting 00h
		repeatStart
		  psgInst 07Ah
		countedLoopStart 7
		        psgNoteL C3,6
		        psgNote  As2
		countedLoopEnd
		countedLoopStart 7
		        psgNoteL D3,6
		        psgNote  C3
		countedLoopEnd
		countedLoopStart 5
		        psgNoteL C3,6
		        psgNote  As2
		countedLoopEnd
		        psgNoteL D3,6
		        psgNote  C3
		        psgNote  D3
		        psgNote  C3
		countedLoopStart 3
		        psgNoteL C3,6
		        psgNote  A2
		countedLoopEnd
		  psgInst 07Ch
		        psgNoteL D3,6
		        psgNote  Cs3
		        psgNote  D3
		        psgNote  F3
		repeatSection1Start
		        psgNoteL E3,6
		        psgNote  F3
		        psgNote  A3
		        psgNote  F3
		  psgInst 07Ah
		countedLoopStart 7
		        psgNoteL C3,6
		        psgNote  As2
		countedLoopEnd
		countedLoopStart 7
		        psgNoteL As2,6
		        psgNote  A2
		countedLoopEnd
		  psgInst 07Bh
		        psgNoteL Fs2,6
		        psgNote  As2
		        psgNote  C3
		        psgNote  Ds3
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  C4
		        psgNote  Ds4
		        psgNote  Fs2
		        psgNote  A2
		        psgNote  As2
		        psgNote  D3
		        psgNote  Fs3
		        psgNote  A3
		        psgNote  As3
		        psgNote  D4
		        psgNote  Ds4
		        psgNote  C4
		        psgNote  As3
		        psgNote  G3
		        psgNote  As3
		        psgNote  G3
		        psgNote  As3
		        psgNote  C4
		        psgNote  F4
		        psgNote  Ds4
		        psgNote  C4
		        psgNote  A3
		        psgNote  F3
		        psgNote  Ds3
		        psgNote  C3
		        psgNote  A2
		repeatEnd
		repeatSection2Start
		        psgNoteL A3,6
		        psgNote  F3
		        psgNote  D3
		        psgNote  A2
		  psgInst 07Ah
		countedLoopStart 7
		        psgNoteL Ds3,6
		        psgNote  D3
		countedLoopEnd
		countedLoopStart 7
		        psgNoteL C3,6
		        psgNote  Gs2
		countedLoopEnd
		  psgInst 07Bh
		        psgNoteL A2,6
		        psgNote  G2
		        psgNote  A2
		        psgNote  G2
		        psgNote  A2
		        psgNote  G2
		        psgNote  D3
		        psgNote  As2
		        psgNote  A2
		        psgNote  F2
		        psgNote  A2
		        psgNote  F2
		        psgNote  A2
		        psgNote  F2
		        psgNote  A2
		        psgNote  C3
		        psgNote  As2
		        psgNote  G2
		        psgNote  As2
		        psgNote  G2
		        psgNote  As2
		        psgNote  G2
		        psgNote  As2
		        psgNote  D3
		        psgNote  Ds3
		        psgNote  C3
		        psgNote  Ds3
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  C4
		  shifting 010h
		  psgInst 07Bh
		        psgNote  Cs5
		        psgNote  Ds5
		        psgNoteL F5,108
		        psgNoteL Ds5,12
		        psgNote  Cs5
		        psgNote  A4
		        psgNote  As4
		        psgNoteL C5,24
		        psgNoteL Cs5,12
		        psgNoteL Gs4,108
		        psgNoteL C4,12
		        psgNote  Cs4
		        psgNoteL As4,24
		        psgNoteL Gs4,12
		        psgNoteL As4,8
		        psgNote  B4
		        psgNote  Cs5
		        psgNoteL Ds5,108
		        psgNoteL Cs5,12
		        psgNote  B4
		        psgNote  G4
		        psgNote  Gs4
		        psgNoteL As4,24
		        psgNoteL B4,12
		        psgNoteL Cs5,48
		        psgNote  D5
		        psgNoteL E5,36
		  shifting 00h
		  psgInst 07Ch
		        psgNoteL C2,6
		        psgNote  E2
		        psgNote  A2
		        psgNote  C3
		        psgNote  C3
		        psgNote  E3
		        psgNote  A3
		        psgNote  C4
		        psgNote  Fs3
		        psgNote  Ds3
		        psgNote  B2
		        psgNote  Ds3
		        psgNoteL Fs3,4
		        waitL    8
		        psgNoteL Fs3,6
		        psgNote  Fs3
		        psgNote  Gs3
		        psgNote  E3
		        psgNote  B2
		        psgNote  E3
		        psgNoteL Gs3,4
		        waitL    8
		        psgNoteL Gs3,4
		        waitL    8
		        psgNoteL A3,6
		        psgNote  Fs3
		        psgNote  D3
		        psgNote  Fs3
		        psgNote  A3
		        psgNote  Fs3
		        psgNote  D3
		        psgNote  Fs3
		        psgNote  A3
		        psgNote  Fs3
		        psgNote  Fs4
		        psgNote  D4
		        psgNote  A3
		        psgNote  Fs3
		        psgNote  D3
		        psgNote  A2
		        psgNote  A3
		        psgNote  Fs3
		        psgNote  D3
		        psgNote  Fs3
		        psgNoteL A3,4
		        waitL    8
		        psgNoteL A3,6
		        psgNote  A3
		        psgNote  B3
		        psgNote  Gs3
		        psgNote  E3
		        psgNote  Gs3
		        psgNoteL B3,4
		        waitL    8
		        psgNoteL B3,4
		        waitL    8
		        psgNoteL Cs4,6
		        psgNote  As3
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  Cs4
		        psgNote  As3
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  Cs4
		        psgNote  As3
		        psgNote  As4
		        psgNote  Fs4
		        psgNote  Cs4
		        psgNote  As3
		        psgNote  Fs3
		        psgNote  Cs3
		countedLoopStart 7
		  psgInst 00h
		        waitL    102
		countedLoopEnd
		  psgInst 07Ch
		        psgNoteL Fs2,4
		        psgNote  As2
		        psgNote  Cs3
		        psgNote  Fs3
		        psgNote  As3
		        psgNote  Cs4
		  psgInst 00h
		        waitL    72
		  psgInst 07Ch
		        psgNoteL Fs2,4
		        psgNote  B2
		        psgNote  Ds3
		        psgNote  Fs3
		        psgNote  B3
		        psgNote  Ds4
		  psgInst 00h
		        waitL    96
		        waitL    24
		  psgInst 07Ah
		        psgNoteL As2,153
		  shifting 010h
		        psgNoteL Ds4,3
		        psgNote  F4
		        psgNote  Fs4
		        psgNote  Gs4
		        psgNote  As4
		        psgNote  C5
		        psgNote  Cs5
		        psgNote  Ds5
		mainLoopEnd
Music_1_Channel_9:
		channel_end
I made a conversion tool to import music from shiru's VGM Music Maker's "TXT export" feature.
You can find it here : disasm/data/sound/SF2SoundTools-1.0.0.jar, and you can execute it properly with vgmmmtxtimport.bat.
So you can now compose new music and import it into an existing music bank, if you make enough place for it.
This conversion doesn't make any kind of space usage optimization though, so a good knowledge of how tracker music patterns work, and a good knowledge of the sound driver's music format, are required to replace repeated patterns with appropriate loops.
Here are the YM instrument bank and PCM bank you can use in VGM MM :
http://shrubbery.free.fr/sf2hack/sf2dis ... mmmsf2.zip
The SF2 Disassembly Super Thread / sf2hack Discord / Currently not available for tech support (sorry!)
RockyGateway
Newbie
Newbie
Posts: 2
Joined: Fri Jan 31 2014 2:12am
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by RockyGateway »

Hello, I've got a somewhat weird question to ask and I'm not entirely sure how to write it. Is there a way to control which "water" animation is currently showing up on the rendered map within SF2MapEditor or one of the other two map editors?

For example

These would be the first and second water animations:
Image Image

Right now only one of those shows up on the map render, and I can't for the life of me figure out how to make the other one appear. I'm not even sure if having both be available to show up is possible or not. The reason why I'm looking for this is because I'm making some animated wallpapers for Wallpaper Engine, and so far animating the water the old fashioned way by arranging 8x8 blocks in the right order is getting a bit annoying.
User avatar
Wiz
Shining Member
Shining Member
Posts: 181
Joined: Sun Mar 18 2007 2:43pm
Location: Blois, France
Contact:
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by Wiz »

Hey RockyGateway,
SF2MapEditor currently cannot display the alternative animation tiles, but that's something I'll be glad to implement as it's a totally legitimate request to work on map animations properly.
Right now I'm on a long vacation trip (just saw the Grand Canyon today, oh the vertigo :D) so I won't be able to provide an update until next month, but please remind me to work on this and I'll be happy to do something quickly for your needs and then maybe make animation edits a bit easier while I'm at it. :)
The SF2 Disassembly Super Thread / sf2hack Discord / Currently not available for tech support (sorry!)
User avatar
FfuzzyLogik
Member
Member
Posts: 32
Joined: Wed Dec 12 2018 4:46pm
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by FfuzzyLogik »

Wiz by the way, take time to go in Grand Canyon instead of answering ! Its so intense, big... You've 2 billion years front of you ! Have pleasure. If you have time to go far to the north, I suggest you Yosemite National Park, very nice forest (and less hot) of some of biggest trees in world. Have fun !
jordanelias
Newbie
Newbie
Posts: 10
Joined: Mon Aug 14 2017 10:04pm
Status: Offline

Re: SF2 Disassembly Tool Suite

Post by jordanelias »

Howdy! I am very limited in working with the disassembly tool suite as I am by no means a coder, but I do my best to poke around. Right now, I am trying to figure out how to implement a debuff called 'Weaken' that would parallel Slow in affecting the enemy's Attack attribute.

Code: Select all

; =============== S U B R O U T I N E =======================================

WriteSkirmishScript_WeakenMessage:
		
		jsr     GetBaseATK
		mulu.w  #3,d1
		lsr.l   #3,d1
		move.w  #$10,(a6)+
		move.w  #$14D,(a6)+
		move.w  d0,(a6)+
		move.w  #0,(a6)+
		move.w  #0,(a6)+
		move.w  d1,(a6)+
		rts

	; End of function WriteSkirmishScript_WeakenMessage
Even in the event that this is correct, I believe that I would have to edit it into the .asm files located in \data\stats\spells followed by editing the relevant .asm in data\stats\allies\stats.

As a companion, I would love to implement a debuff called 'Root' that would prevent the enemy from moving. I know that Siel kindly released some patches that did similar things to what I am asking about here, but his patches are not 1:1 for what I want.

Any help would be greatly appreciated!

Edit:

Code: Select all

SN 68k version 2.53

C:\EMULATION\GENESIS\SF2DISASM-MASTER-VANILLA\DISASM\DATA\STATS\SPELLS\SPELLDEFS.ASM(140) : Error : Expression must evaluate
val: set val|spell_weaken
C:\EMULATION\GENESIS\SF2DISASM-MASTER-VANILLA\DISASM\DATA\STATS\ALLIES\STATS\ALLYSTATS00.ASM(16) : Error : Expression must evaluate
val: set val|spell_weaken
Errors during pass 1 - pass 2 aborted
Assembly completed.
2 error(s) from 293766 lines in 0.50 seconds
Image
Post Reply