The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 895 - File: showthread.php PHP 7.3.33 (Linux)
File Line Function
/showthread.php 895 errorHandler->error




Users browsing this thread: 1 Guest(s)
Music importer & randomizer

#1
Posts: 27
Threads: 2
Thanks Received: 0
Thanks Given: 0
Joined: Jul 2018
Reputation: 6
Status
Mental-Break
I've been kicking this around on Discord but I thought I'd post something about it here so more people can find it.

I'm working on a project that sort of independently extends/adjusts the Beyond Chaos randomizer, including adding/shuffling music. It's made for use with BC, but because of the way I'm building it independently, it's potentially a very capable tool for general FF6 hacking, whether you just want to replace some songs for fun or you want to change music extensively for a total conversion type hack. It's ... not very user friendly, and some things could stand to be documented better, but there's a chance it could make a few peoples' lives easier.

It's also very new and not very tested, so there's currently a good chance it could break your game. 

download here - requires python 2.7
includes a selection of custom songs (currently 118), some from the list here and some converted by me.


Q: "So random stuff is fun and all, but it's not my kink. How do you use this for hacking?"

It's probably worth a full tutorial once development is stable enough that it won't become obsolete in a week, but here's the basics:

First, if you are using this as just a music insertion tool, use ONLY mode 'm'. You can change the default mode in config.txt.

What songs are inserted, and where, is controlled by a config file called songs.txt.
There are two sections to this file: [Imports] and [SongSlots].
Each line in Imports defines a song that COULD be inserted (or moved), and lists the SongSlots that it could be inserted into.
Code:
ff4_baron: figaro, troops, returners

This import entry tells it that when it chooses a song to replace "Edgar and Sabin", "Troops March On", or "The Returners", one of the options will be the song stored in "ff4_baron_data.bin". Alternately, if the filename given starts with "ff6_" and ends with the identifier for a SongSlot, then if no file is found, it pulls the existing song from the ROM for that slot.
This means that if you want to insert a song or a set of songs without randomness, all you have to do is make sure that:
  • every Import entry has exactly one option -- e.g. "ff4_baron: troops"
  • None of those options are duplicate SongSlots -- e.g., if another entry is "ffmq_fossil: troops" then it will choose randomly between those two.
  • And finally, the SongSlot must be set to 100% probability to change.
A SongSlot looks like this:
Code:
1C: troops, 100
1C is the song ID -- the number the game uses to access it in events and such, as well as the sequential number in hex of the song pointer.
'troops' is an identifier used by this program in import entries and debug output. It can be changed to any word you like.
'100' is the probability (in percent) that the program actually processes this song. For non-random purposes this should always be 100. Even if it is set to 100, if there is no Import that mentions a SongSlot then that SongSlot will remain unchanged.

NOTE: No matter how little or how much you insert, this WILL shuffle around the location of every song in your ROM. A text file is output that gives the new locations. You can specify (in config.txt) the offset for existing music as well as any number of additional locations to insert the music to. There is an option that should leave existing music untouched and ONLY inserts new music, but last time I tried it it seemed to glitch several tracks, so use at your own risk.


Another mode that may be of interest to people -- not even hackers, just players -- as a bit of a mini-hack is 'b', which adds four additional song slots to the ROM and uses them for additional battle music. The idea is to implement something similar to Breath of Fire or Tales series games that "upgrade" your battle music as you progress the story. Currently, it finds the min and max monster levels and splits the range between those into five parts, then assigns those to formations based on average monster level in the formation. It doesn't seem very consistent though, so I will be working on other methods, including one based on earliest location fought. This mode also upgrades some battles that use regular boss music to use Fierce Battle (or rather, whatever replaces it), with higher probability to upgrade based on level. Again, the level scaling here seems not to be working well. But even in this early form, this mode is really fun! Try it out!
  Find
Quote  
[-] The following 5 users say Thank You to emberling for this post:
  • Gi Nattak (07-15-2018), madsiur (07-15-2018), NPCnextdoor (07-15-2018), SSJ Rick (07-16-2018), Warrax (07-16-2018)



Messages In This Thread
Music importer & randomizer - by emberling - 07-14-2018, 04:41 PM
RE: Music importer & randomizer - by madsiur - 07-15-2018, 09:20 PM
RE: Music importer & randomizer - by emberling - 07-18-2018, 04:58 PM
RE: Music importer & randomizer - by Gi Nattak - 07-19-2018, 01:11 PM
RE: Music importer & randomizer - by madsiur - 07-19-2018, 01:58 PM
RE: Music importer & randomizer - by Gi Nattak - 07-19-2018, 02:02 PM

Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite