Sonic 3 A.I.R. Release Thread

Discussion in 'Fangaming Discussion' started by 360, Apr 7, 2019.

  1. Sid Starkiller

    Sid Starkiller

    Virginia, USA
    Paying off student loans
    Still looks white to me

    EDIT: For the record: here's my unedited post in both skins:
    The default font color appears perfectly readable no matter what skin you're in.
    Last edited: Apr 20, 2021
  2. Overlord


    Now playable in Smash Bros Ultimate Moderator
    Berkshire, England
    Learning Cymraeg
    Bleh, then I dunno. You'll just have to bear with it for those posts.

    @Blastfrog Stop using the formatting tags, please.
  3. Sally Rose

    Sally Rose

    aghh why are you useing that skin/light mode?

    I go golden/dark mode myself, it likes the darks it does.
  4. Overlord


    Now playable in Smash Bros Ultimate Moderator
    Berkshire, England
    Learning Cymraeg
    We're veering off topic here, any more posts about the forum skin will go to trash.
  5. Eukaryot


    Tech Member
    Sonic 3 A.I.R.
    I'll change the topic now. :)
    There's a new preview build available for Windows, Mac and Linux!

    You can find the downloads under "Current Preview Version" on the project homepage (Windows, Linux) and the Mac version on Sappharad's website.
    And here's what's changed.
  6. T.Q.


    The Sims 2, Tim Drake [Robin] Member
    Question @Eukaryot

    What type of type of commands/values (IDK how it's called) can you use in the "audio_replacements.json" file?

    Here's an example:

    "01": { "File": "...", "Type": "Music" },

    What things can you put in between the brackets to define "01"?

    And what are the options for what you can put in those brackets?

    I'm interested in finding a way to write out a command or formula that can randomly choose a file. Here's an example, I'm mixing some Java code that won't work, but gives an idea:

    String[] "01": { "01_1", "01_2", "01_3" },
    "01_1": { "File": "...", "Type": "Music" },
    "01_2": { "File": "...", "Type": "Music" },
    "01_3": { "File": "...", "Type": "Music" },
    int i = (int) (Math.random() * 01.length),
    "01" = "01_" + i
    Last edited: Apr 25, 2021
  7. Eukaryot


    Tech Member
    Sonic 3 A.I.R.
    Okay, first a full list of the properties for each audio key. I won't go too deep into the details, this will be added to the modding PDF instead.

    • Either "Music", "Jingle" or "Sound"
    • Determines the basic behavior of the sound, e.g. whether it loops and if it counts as music or sound effect for volume control
    • This should not be changed from the original
    • File name of an Ogg Vorbis file to play (or as a yet undocumented feature, an SMPS file)
    • If not using an Ogg Vorbis file as source, this can be one of the sub-types "Emulation", "EmulationContinuous" or "EmulationDirect"
    • The game will play back original SMPS data from the ROM
    • The sub-type determines e.g. if the sound is a continuous sound that on playback just gets a signal to continue instead of being restarted (there's more to it, like how internal caching is used differently for each sub-type, but I think that's beside the point here)
    • Playback channel to use - for each channel, there can be only one track playing at a time, so starting a new track will stop the old one, if one plays already
    • Leave this out to use no channel at all, i.e. unrestricted playback independent of all other playing tracks
    • Music and jingles automatically use channel 0
    • Start position in samples for the looping part
    • Relative playback volume as a float ("1.0" means normal volume)

    And there's also some newly added emulation / SMPS-specific properties:

    • For emulated playback from ROM only: Can be used to override the address of a track in ROM
    • Actual start of SMPS data for the track inside the given SMPS file
    • This is meant for cases when the track doesn't start at the very beginning of the file already - e.g. because there's more than one track in the same file
    • Original sound ID associated with the track; it's needed because the sound driver makes some hard-coded differentiation inside depending on this ID

    But I guess that isn't all that helpful for what you're trying to accomplish. ;)
    For things like a random selection of a track to play in a given situation, you can add some script code that does that. Have a look at the "Standalone.playAudio" function in "scripts/standalone/audio.lemon", it already does things like choosing the right track to play depending on the selected settings (e.g. S3 version vs. S&K version of a track and similar).
    If you want to make changes in there, I'd recommend to overload the "Standalone.getModdedSoundKey" function that is called inside there. This is meant to facilitate modding a bit, so you don't have to copy the whole "Standalone.playAudio" over to your script mod.
    I hope that helps!
    • Informative Informative x 2
    • List
  8. T.Q.


    The Sims 2, Tim Drake [Robin] Member
    Oh the information you provided is useful, and I guess it's coded using Lemon. Something I'll have to look at (and bash my head if I don't get the coding language, lol).
  9. Eukaryot


    Tech Member
    Sonic 3 A.I.R.
    Sonic 3 A.I.R. did not receive an actual stable update since July 2020, only more or less experimental preview builds and mobile beta versions.
    So we basically took the last preview from two weeks ago, made a few additional fixes where needed, and now here we go with a new stable version for Windows, Mac and Linux!

    This is v21.05.08.0 and you can find it as usual on the project homepage.
    Here's the full changelog with all changes since the previous stable version.

    And these are the changes made in the last two weeks, since the recent preview update:
    • Fixed a crash when playing an emulated music track twice in quick succession in sound test
    • Fix for music stopping after Super Cancel while still having speed shoes
    • Fix for a potential soft-lock when Super/Hyper transforming right when hitting the ground
    • Added support for modded Tails' tails sprites in Time Attack ghosts
    • Fixed that Blue Sphere game stage was not saved after entering a stage code
    • Changed the two Soft upscalers to adapt better to the actual screen resolution
  10. Willie


    Each day the world turns Laugh 'til it all burns Member
    I did a let's play of this wonderful fan project and experienced four weird glitches. Those glitches can be found in the time stamps. I'm confused how I died as Hyper Sonic in Sandopolis Zone Act 2. Can all of these glitches happen in the original Sonic 3 & Knuckles?

  11. DigitalDuck


    Arriving four years late. Member
    Lincs, UK
    TurBoa, S1RL
    Lava Reef and Sky Sanctuary glitches are as the original game; Knuckles is a deliberate change. I think the Sandopolis one is new though.
  12. Eukaryot


    Tech Member
    Sonic 3 A.I.R.
    I'd guess the Sandopolis one can happen in the original, too. There's a small kill plane object in the wall (at the same spot in S3&K and S3AIR) that can trigger an instant kill if you manage to move into the wall too far before wall collision pushes you back. You can see that object in debug mode as reverse "GTGT" text.
    Actually, I wasn't able to reproduce the issue, and also haven't seen it ever before - so it probably only happens under very specific conditions, like performing a Hyper Dash in the exact right spot.
    Nevertheless, it shouldn't hurt if I move that object a few pixels to the right, so it definitely can't get triggered by Hyper dash any more.
  13. Melody the Sylveon

    Melody the Sylveon

    You're never too old to become your true self. Oldbie
    I don't really know if this is the right place to mention this, but hope it's ok:
    I've been getting framerate stutter type issues in the Switch port, like it feels like it periodically switches to 30fps and back. Happens both docked and in handheld mode, overclocking doesn't help.
  14. REPO Man

    REPO Man

  15. Eukaryot


    Tech Member
    Sonic 3 A.I.R.
    Hey everyone!
    The new stable update v21.09.12.0 is here (Windows, Mac, Linux and Switch), once again with a bunch of bug fixes and improvements.
    It also adds in a menu to setup keyboard & controller bindings - something I feel has been missing for a long time, but is now part of the Options.

    You can find the downloads and all information incl. the full changelog on the project homepage as usual.