Giter Site home page Giter Site logo

knuxfan24 / sonic-06-randomiser-suite Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 0.0 259.62 MB

An all in one software suite for randomising various elements in Sonic '06 on the Xbox 360 and PlayStation 3.

License: MIT License

C# 100.00%
sonic-the-hedgehog xbox-360 playstation-3 randomiser sonic-06

sonic-06-randomiser-suite's People

Contributors

knuxfan24 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

sonic-06-randomiser-suite's Issues

Allow the main randomiser to do set extraction

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.

Implement all the old version's features

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.

XNCP Randomisation

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

Dark Theme

I'm a self proclaimed lover of Dark Colour Schemes, so ideally every window should have the option for one.

README

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

Sky Randomisation

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.

Remove the Door and Cage Hack

Will only be possible when HedgeLib's S06SetData class is finished, in its current state grouped objects break, including doors and cages.

Custom Voice Lines Saving to Wrong Folder

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.

Load settings from Spoiler Log

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 better looping

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.

Custom Textures

Old Texture Randomiser had this, so it would be nice to bring it back.

Wildcard Expansion

Could be really cool to allow the user to control the Wildcard's blacklist. Rather than hardcoding it.

2.1.22 Docs

Things were changed in a way to require documentation tidying up, been too lazy to do so.

Expand the LUA Randomiser

Maybe allow it to randomise more than just a stage's music and lighting? Randomising Character Values could be both fun and disastrous.

T-Pose crashing Silver and Elise?

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.

Locate why enabling the enemy randomiser crashes certain stages

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.

Mirrors Vanish

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.

Make enemies appear in the correct colour

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.

Tooltips

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

Make the Spoiler Log more readable

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.

Documentation and Build

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

Broken XMA Music Cache

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.

Ninja Randomisation

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.

Replace Audio Directly

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.

Two Oversights

Woke up and remembered a couple of things I forgot about.

  • Clicking Select All or Deselect All with the Skybox CheckedListBox active will crash, forgot to implement it.
  • The Custom Music Textbox can end up line wrapping, noticed when adding a load of music, forgot to ever fix.

Clean up the randomiser code

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.

Properly figure out what Item Capsule value is what

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.

Iblis Incorrectly Named

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.

Sound Effect Randomisation

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.