knuxfan24 / sonic-06-randomiser-suite Goto Github PK
View Code? Open in Web Editor NEWAn all in one software suite for randomising various elements in Sonic '06 on the Xbox 360 and PlayStation 3.
License: MIT License
An all in one software suite for randomising various elements in Sonic '06 on the Xbox 360 and PlayStation 3.
License: MIT License
Should be a fairly simple tweak to the randomiser function? Just allow the user to select a .set file and, if the filepath that the randomiser function gets contains a .set as opposed to a .xml, then extract it before continuing.
Just add the missing enemies and the bosses to it, really simple to do.
Includes things like saving and loading configuration settings, the SET Extractor and XML Importer, the LUA randomiser and other stuff.
The Randomiser Rewrite project should have the currently done things in the Done column.
Need to look into why this happens, maybe something to do with the XMAs themselves I don't know.
Will require a copy of XNCPLib to be included with the Randomiser, maybe modified to make some things easier to fiddle with.
Colour edits have been proof of concepted with some very shoddy code (see below). Sprite index randomisation was also suggested, but hasn't been tried yet.
TODO: Link an example (happened on Stream in Shadow's Flame Core)
Currently I have one premade, would be better to generate the one with every voice line in it at runtime.
I'm a self proclaimed lover of Dark Colour Schemes, so ideally every window should have the option for one.
Need to write a readme with build & usage instructions. Will have to include the information in this tweet to fix HedgeLib's S06SetData class (doesn't fix the lack of grouping unfortunately).
See if we can randomise skies. If the function is smart, it won't load the whole damn stage. If it does, then consider if it's even worth TRYING to isolate skies into their own stage folder.
Will only be possible when HedgeLib's S06SetData class is finished, in its current state grouped objects break, including doors and cages.
Noticed from the last stream I did, most of the custom hint files ended up in the base sound folder rather than the English voice folder. This might also be linked to the Event Music Randomiser also being able to pull custom voice lines as event music, which is not intended. Need to look into that.
Should be FAIRLY reasonable to use a variation of the Load Config function to read settings from a Spoiler Log, including the file that was randomised, the output folder and the seed.
Ideally, loading from a Spoiler Log should produce an identical set if the randomisation is done without changing any settings.
vgmstream has a command line switch -L: append a smpl chunk and create a looping wav
that seems to preserve looping information in a way that xmaencode really likes. Need to test rejigging the Randomiser's Custom Music feature to use this and see if the problematic jumps in audio due to end samples that shouldn't be used persists or not.
Old Texture Randomiser had this, so it would be nice to bring it back.
Could be really cool to allow the user to control the Wildcard's blacklist. Rather than hardcoding it.
Things were changed in a way to require documentation tidying up, been too lazy to do so.
sigh
Maybe allow it to randomise more than just a stage's music and lighting? Randomising Character Values could be both fun and disastrous.
Need to test this to confirm or deny, but I think this is what happens. Not sure with Elise, but I feel like Silver's style XNM is to blame for his crash.
Evidently I've missed some sound cue names and/or have put in some that don't exist? Investigate.
Kingdom Valley's second section for Sonic will ALWAYS crash after the second checkpoint if the enemies are randomised, find which enemy is being randomised that shouldn't be and remove it from the logic.
Potentially caused by some flying enemy? Flying Egg Gunners would cause the same problem at the start of Sonic's Tropical Jungle before they were removed from the logic.
Seems like our research into the warpgate object got muddied somewhere along the line, as 0 is NOT a valid number for it and makes the mirror go poof.
Research it to see the valid values and correct this behaviour.
Stuff like the alternate versions of the Egg Gunner and the Mephiles coloured Iblis monsters.
My work on Greenflower has clued me in as to what parameter controls the colour for certain enemies (such as Mephiles' monsters and the variants of the Egg Gunner). It should be fairly simple to make the randomiser apply the correct colour to these enemies.
Either give checkboxes tooltips, or make sure they all don't. Right now, I think the Randomise Enemies checkbox does have one, but others don't, so it's inconsistent (& could be considered an oversight).
As in make the enemy and character names in the log use plain English rather than their internal names, this was easily done manually for the Item Capsules, but the implementation can probably be cleaned up.
Most of the functionality that we want from the Randomiser is basically implemented at this point. It just really needs more thorough testing done. Then some usage documentation written and a Version 1.0 build to be compiled and released (the old broken as hell versions I made solo don't count.).
Commit badf013 broke the XMA Music Cache, as it tries to copy from the Cache to a folder in the mod that doesn't exist thanks to a copy paste error.
Did previously have this (in the form of Vertex Colour, Texture Animation and Light Animation Randomisers), but it seemed to cause weird crashes???
Try reimplement and investigate at some point.
Add as an alternative option to Randomise Stage Music, allowing the game to physically swap the XMAs rather than just changing a Lua value. This would probably be not recommended, as it could result in jingles playing as a stage song, thus, not looping.
Maybe also just add the jingles to the song selection as well for completion's sake.
Woke up and remembered a couple of things I forgot about.
Wow me really? Learn to software development.
The actual code for the randomiser is a very messy function, find a way to clean it up, ideally by splitting it into different functions, should be simple to get the actual randomisation working with that in theory? The spoiler log would be the main difficulty if approaching from this direction.
The Spoiler Log is clearly getting some of the names of the Item Capsules wrong (Sonic's Wave Ocean does NOT have 5 Power Gauge Refill Capsules). This should be a simple, if time consuming fix, simply set an Item Capsule's parameter to a number, test it and see what the item given is, then update the Spoiler Log's output accordingly.
Is listed in the text files as phaseIblis, but the I is meant to be lowercase. Same screw up is present in the Enemy Behaviour Randomiser.
Did have this working in the past, but it was never in a release (was in code though), but felt clunky, maybe see about using SonicAudioTools's source (in a stripped down form?) to handle CSB extraction and recompilation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.