Guild icon
X-Hax
Modding / game-research / Sonic Adventure Autodemo
Avatar
In this thread we will post research and functionality restorations for the SA1 Autodemo prototype! Here are some tools and resources that you can use: Dreamcast Image Builder This tool lets you create modified GDIs or CDIs of Dreamcast games, including the Autodemo. Like the SA Mod Managers, it has a mods system, and you can apply different mods created by others. Download the latest version Dreamcast Mods Repo This is where you can get mods for the Autodemo and other Dreamcast games. These mods are for Dreamcast Image Builder. Dreamcast Mods Repo How to use: Git clone anywhere then copy DreamcastImageBuilder.exe there and run it. Guides How to play Dreamcast SA1 with mods - this is for the final version but the main steps are the same for the Autodemo. How to add mods to DC Image Builder How to make your own mods for DC Image Builder Outdated links Old Autodemo hack archive Old screenshots, videos Cheat Engine tables, lists etc. (edited)
Avatar
Autodemo Tools on the SA Tools Research Repo https://github.com/X-Hax/sa_tools_research BlockBitTool: Processes an Autodemo landtable that uses Block Bits for individual texture pointers, and outputs a fixed landtable and a .satex texlist. RecreatePVM: Builds a PVM from a list of texture names in a .txt or .satex file by looking up textures by name in the textures folder. Useful in combination with BlockBitTool. PatternPatchMaker: Creates byte or pattern (pointer) replacement patches for SA1 Image Builder by comparing original and modified files. ExportRawBinary: Outputs raw binary data of NJS_OBJECTs and NJS_MOTIONs or writes it at specified offsets in a binary with automatic pointer adjustment. (edited)
8:27
Previous Threads Previous thread 1: https://discord.com/channels/446023672147345418/1238478372955492384 Previous thread 2: https://discord.com/channels/446023672147345418/1238561775281111133 (this is a private thread, ask anyone with the Researcher role to be able to view it) (edited)
PkR pinned a message to this channel. 18.06.2024 8:28
PkR pinned a message to this channel. 18.06.2024 8:28
Avatar
@Speeps What does this mean? (1ST_READ) Expand Act 1's object list NOTE: In case 2CC83700-2CCA7FD0 is used by something else and breaks the game, there needs to be two spaces at least 0xE2C0 each in size to fit both the SET file and the current object list.
Avatar
I've been trying to convert the Windy Valley hack into a mod, followed the notes in WVPatchInfo.txt but it resets trying to boot the stage...
Avatar
Avatar
PkR
@Speeps What does this mean? (1ST_READ) Expand Act 1's object list NOTE: In case 2CC83700-2CCA7FD0 is used by something else and breaks the game, there needs to be two spaces at least 0xE2C0 each in size to fit both the SET file and the current object list.
Need a large space to write all of WV's objects
11:58
There's one that the SET file gets loaded in and one for the stage objects that it loads
Avatar
i'd implemented the patches from the notes in the one i put on nextcloud in a patterns file
13:51
0x8c06caba seems to be code for printing miniboss debug stuff but despite it running through its code properly, it never seems to print anything? it might need to be called from a stage bin specifically
Avatar
Avatar
woof
i'd implemented the patches from the notes in the one i put on nextcloud in a patterns file
I looked at it but it doesn't look like it's all of them, also I wanted to make patches for STG02
Avatar
miniboss thing checks for controller 2 left/right dpad inputs for selecting entries (edited)
Avatar
Avatar
PkR
I looked at it but it doesn't look like it's all of them, also I wanted to make patches for STG02
i did the object expansion in patterns file and texture name in texture name restores mod. unless there was another thing i missed
Avatar
yeah that part was fine I think
Avatar
oh god it was just a mistake I made when reversing byte order for pointers
14:08
original STG02 with patches applied externally still doesn't boot though
Avatar
okay I'm slowly getting there
Avatar
For 8C02E14A (UnkWV22), the latest excel says the fixed version is 8C02F5CA but in Speeps' STG02 it's 8C02F45C
Avatar
The notes don't mention that the section at C904998 is nulled out
Avatar
The instruction at C906642 is also nulled out
Avatar
Avatar
PkR
For 8C02E14A (UnkWV22), the latest excel says the fixed version is 8C02F5CA but in Speeps' STG02 it's 8C02F45C
For 8C0658EC (UnkWV23) the excel says it's 8C069A40 but the STG file has 8C069A4A
15:08
The byte at C907E9C is changed from 01 to 02
Avatar
Avatar
PkR
For 8C0658EC (UnkWV23) the excel says it's 8C069A40 but the STG file has 8C069A4A
For 8C0475C0 (FrameIn), the excel says the fixed version is 8C049660 but the STG file still has 8C0475C0. I'm guessing the change wasn't made because we didn't know this pointer yet.
15:19
In the excel, the fixed pointer for UnkWV11 (8C528FB0) displays as N/A and the comment says "nop'd this". According to the STG file, the pointer is replaced with 0C907DDA (edited)
Avatar
at C911EDC, the byte 02 is replaced with 08, and at C911EEC there's a pointer to 0CAD4AB0/WINDY01 string (this area is null in original file). I'm guessing it's a PVM entry fix
15:27
okay looks like I've reached the end of file. Let's see how this works
Avatar
Avatar
PkR
at C911EDC, the byte 02 is replaced with 08, and at C911EEC there's a pointer to 0CAD4AB0/WINDY01 string (this area is null in original file). I'm guessing it's a PVM entry fix
same for 137A0 (C9A37A0), the value is changed from 02 to 08, and the pointer at 137B0 (C9A37B0) is to 0CAD4ABC/WINDY03 string
15:37
behold, it fucking works lol
Avatar
will test a bit more but here's a working version that patches STG02 instead of replacing it
15:47
I think "Texture File Name Restores" for each stage should be incorporated into those stages' mods
Avatar
i got a question regarding stg02
16:32
do we have any source filenames?
16:32
from the symbols i mean
16:32
and how much of the release version objects/source files are in bwv too?
16:33
im working on an auto-file boundary detector for making splitting new files a bit faster, and also as an experiment to learn rust lol
👍 1
16:33
thought the previous idea i proposed about a bwv decomp could serve as a good test for it
16:34
thats why im asking
Avatar
Avatar
PkR
will test a bit more but here's a working version that patches STG02 instead of replacing it
Hmm ya know, we should probably just make a “restored levels”mod that does all levels, and work on it together
Avatar
Avatar
Exant
and how much of the release version objects/source files are in bwv too?
E103 lol
Avatar
Avatar
PkR
I think "Texture File Name Restores" for each stage should be incorporated into those stages' mods
i left this separate to have an easier time keeping track of their offsets in the case that anything else overwrites them or if they break something else. i won't object to them being moved into the stage mods themselves but doing it this way made testing easier.
Avatar
Avatar
PkR
Hmm ya know, we should probably just make a “restored levels”mod that does all levels, and work on it together
i think though this would make sense to do. how confident are we that the wv object limit increase doesn't break anything so far?
22:59
i forgot to do one for casinopolis when i uploaded the others also
Avatar
Avatar
Speeps
E103 lol
welp lol that means we'll have to come up with our own names i guess
23:22
atleast for the set object file stuff that should be fairly straightforward (edited)
Avatar
I need to record Sand Hill this week, maybe I should fix up the E3 file too
23:37
the objects that thing used are in the autodemo so it can be loaded in that
Avatar
Avatar
woof
i think though this would make sense to do. how confident are we that the wv object limit increase doesn't break anything so far?
Tbh I don’t know if it’s good to have a hack line this. I wonder if I could make a simple config system to enable or disable parts of the mods. We can track the string offsets in a text file and include it in the mod
Avatar
Avatar
PkR
Tbh I don’t know if it’s good to have a hack line this. I wonder if I could make a simple config system to enable or disable parts of the mods. We can track the string offsets in a text file and include it in the mod
make the object limit changes toggleable as one thing in a mod that bundles all restored stages and assets, perhaps include toggleable autodemo enhancements within this mod for anything that restores content that was not included on the autodemo disc or differs from what it used (the final egg act 4 mod changing the start position to the position from act 6, the loose pvr lock-on mark texture in sky chase...)
Avatar
Yeah maybe
1:21
I’m thinking I’ll have bool toggles where each toggled item is basically a separate mod.ini
Avatar
it would be tidier that way maybe. even having many toggles would be fine so long as named properly
1:31
like just in terms of how many separate inis might end up in the mod folder
1:32
forgot if i mentioned, i checked in 1st_read on ghidra with more research labels and start positions with their data types assigned
Avatar
You could put them in like mods/mymod/option1/option1.ini
Avatar
Right now I'm thinking that each mod would be able to add "submods", which would show up on the mod list just the same, but the parent mod's entry would become collapsible and they'd be listed inside
Avatar
that'd probably work
3:06
is the only known way to use the power up items like light dash still having to set sonic's action manually?
3:07
i'm reminded of it from a post in sa1 modding, i wanted to go find if there were item flags or something but if anyone already knows...
Avatar
i thought for fun i could generalise the function to create task for bgm from the title screen but that only seems to be half of the solution... it's behaviour is to increment a byte until 0a, then it creates the task and starts playing the bgm. increments to 0b and every frame after skips creating the task. setting to 0a again at title restarts the bgm. i have that code generalised for supplying an adx id to a new byte in ram rather than it being specified in the function. it does it's loops and increments until 0b, but it doesn't play a song despite calling to InitBGMTask and to CreateSomeTask and to SendBGMID. maybe i am somehow skipping actually loading the afs? the function i wrote spans like 7 free areas of 1st_read already and it's a pain to look at 😭
1:41
if i can make it work it should allow for writing adx id to the new byte to store it, then to call BGMGen and it should handle stack run it's code and clean up from stack and return. it would need to be called every frame. i just gotta keep debugging though
Avatar
oh its worse than that, turns out it so far is working in flycast and not in demul
Avatar
decided that was fun for learning but i have a different working method now and its nicer
👍 1
Avatar
i hijack the act specific init in a stage and jump to patch code inserted after the file. basic structure is set up to create a task with the BGM task, then pass the adx id in r4 to SendBGMID. everything under the pink line is setting up to preserve the original act init that i had to move here as well as restoring the PR from when we jumped here to resume the rest of act init properly
12:53
so i guess i am doing this for the rest of the stages that have music on the disc and then figuring out working with afs files again to insert music for stages that have no file on the disc as an optional extra
12:54
also do we need to announce the existence of this thread to people who weren't already in the private one lol
Avatar
Avatar
woof
also do we need to announce the existence of this thread to people who weren't already in the private one lol
I think it's fine not to announce it, it's visible so whoever is interested can find it on their own. Might be a better idea to keep it down to avoid noob questions in sa-modding and sa-tools
Avatar
@Speeps idk if it was you who mentioned a while ago but do you know if there was a list of afs adx file ids used by the game to determine the maximum adx id?
16:15
i have sky deck creating the BGMTask and it can pass its now incorrect adx ids properly so i wanted to modify the afs file.. but it won't just play an id higher than 1c atm
Avatar
ok, it goes up to id 1f despite the autodemo afs going up to 1c only. found the check for max id also through that
Avatar
and increasing that only let me get to song id 0x23 at most..
Avatar
here is that one, lost world next when i debug a crash more
19:32
kept the music choice AD had for this intact
Avatar
lost world worked, it was just where i put the code was being stepped on by the stage writing bytes after the bin
Avatar
very nice!
3:53
I've added a "Submods" system to the image builder, unfortunately I couldn't get them to display nicely in the main mod list without third-party controls so I opted for a "Configure" button and a separate dialog. Submods have identical functionality to regular mods except their mod.ini can't be named mod.ini and must be referenced from the parent mod's mod.ini. Active submods for each mod are saved in the program's settings, so mods don't need config files. I'm going to make a mod that restores all levels we've done so far as an example of how this system can be used.
👍 1
3:55
btw do you replace the whole AFS file? I could maybe add a repacker... though it's getting complex really quick lol
Avatar
Avatar
PkR
btw do you replace the whole AFS file? I could maybe add a repacker... though it's getting complex really quick lol
i did lol, i tried including songs for all stages that were in but can only get the game to play up to id 0x23. right now i'm using one that only adds sky deck 1 and 2 to the afs.
4:18
not sure how best to make that available as is
Avatar
if it's small, you could write manual patches to the AFS and write the ADX files into it, idk if it's worth it
Avatar
about 8.68MB of data for both sky deck adx files together
4:26
100+ if including the whole afs
4:27
for now i might just upload the mod with the include folder commented out and instructions for adding sky deck manually?
4:29
also here's the test port for gamma final egg 3 start pos+set+cam, and sonic final egg 4 set
Avatar
current music restores without the modified afs file. it includes instructions for making the modified afs file with AfsUtils, Sky Deck will run fine without the modified afs but it just won't have music to play.
4:52
it implements music playback for Emerald Coast 1 - 2, Sky Deck 1 - 2, Lost World 1 - 3, and Final Egg 2 - 4
Avatar
oh... ArchiveTool in SA Tools can extract and build AFS
Avatar
i have not kept up to date with afs tools since the autodemo released lol
5:02
i will rewrite instructions for that tomorrow
5:04
whatever method you use, sky deck 1 adx should be file id 30 and sky deck 2 should be file id 31 in decimal to work with this mod
Avatar
i ported that SA2 analogue input fix patch to AD and it seems to work
12:49
should be easily portable to final, the only issue is the size of padding space. had to do one branch trick and one jump trick while the SA2 one was lucky to have 15 instructions worth of padding for it in one place
Avatar
and ported to final now too
Avatar
Fixed the E3 file
19:08
It's a little later than the press release version
19:10
AD has all the objects except for these jump ramps, there's only 2 though
19:13
they've buried a capsule in the floor just low enough for the snowboard to reach with a jump lol
chuckles 2
19:13
Avatar
It seems like only @woof and I use NextCloud more or less regularly, so we thought of a different idea: How about a GitHub repo for all mods? If you use the image builder you can git clone to the same folder as the exe and basically have them work right away. If you don't use the patcher, you can create a folder to put your edited BIN files etc. in.
Avatar
sorry, I've just been concentrating on getting files that work lately
Avatar
i'm not sure how well i'll be able to modify station square for setting up music outside of events. it does call to set up BGM task but then calls event file loading and i assume it handles sending the BGM as part of that. seems like all acts of station square run through that code but i stopped looking for now. i see where it passes two values for sonic and two for tails that affect if the event actually loads for them and can manipulate it to not load an event. still just dumps you at spawn with controls locked.
23:27
all it's code is in adv00obj, it's base address should be 0ca80000
Avatar
I think a1ll there is now is like, Practice and bosses?
23:29
That said we should probably fix up Egg Carrier to show off the different object lists for each map, like Hit Count Hedgehog Hammer and that pool closed object
Avatar
mystic ruins was still crashing on some objects in setedit last i checked
Avatar
how many objects does that have that aren't generic?
Avatar
Avatar
Speeps
how many objects does that have that aren't generic?
first id it crashes on is 12, last is 1A, only 9 objects there that aren't generic. list: 00 ring 01 spring 02 springb 03 o axpnl 04 o ironb 05 o febjg 06 o toge 07 o eme p 08 o release 09 o switch 0a cmn kusa 0b cmn_dring 0c o baloon 0d o itembox 0e o r_v 0f o r_vs 10 o jpanel 11 o save point 12 o item stand 13 o dig place1 14 o dig place2 15 o kill switch 16 o monkey cage 17 o island door 18 o knuckles door 19 o eggman door 1a o sand switch (edited)
Avatar
MR C crashes flying over here, so i guess some objects are actually placed.
Avatar
If there's a SET file, you can load the level in SALVL and check what there is
Avatar
oh... nice
5:56
all dead
Avatar
tried to debug and its just another thing that seems to work in flycast so far
6:05
or apparently not cause running it in normal flycast it crashed when i rotated the camera after spawning
6:05
annoying
Avatar
whatever ends up going wrong for me by turning camera after spawning in MR C is going wrong in a way that goes to invalid code forever in a weird location and also overwrites the exception handler lol
10:28
anyone know what this file could be called lol
10:28
i dont know what these "I" objects are, maybe there's like a generic name for them used in stages or something
10:28
10:28
also why is there like 20 "sirusi" objects in like 4 separate files lol
Avatar
looks like these don't exist in the X360 symbols, so there's no way to find out what it was called originally... from the models used by these objects, maybe I HAS could've been called o_windy_hasira or something
Avatar
yeah it could be but what i meant was
10:40
those are all in the same file
10:40
like DAI and BOU and SARA
10:40
im guessing the common thing about them is that I prefix in their name, and i dont know what that means (edited)
Avatar
maybe they all use the same collision type or something?
Avatar
anyways im almost done mapping it out, got a couple more files from the ghidra project
10:41
ofc there are quite a few files that are unnamed for now but this is definitely a start
10:42
after i set up this project, i plan to update decomp.me to have the sa1dc compiler too and flag presets for the two sa games, then maybe i can start on supporting model splitting stuff
Avatar
what does model splitting involve? Maybe I can help
Avatar
basically the same thing that the existing sa tools stuff does
10:43
10:43
this is how the splits are set up
10:43
so the idea is you could specify a "basicmodel" or "chunkmodel" or whatever type
10:43
which would nja split it starting from that offset
10:44
(more precisely, since the parent node is always the last object, it would get the next segment's offset and start scanning backwards from there till the specified start offset of the model file)
10:44
or atleast thats how i imagined it
10:44
not sure how i'll implement it exactly cuz i personally would've wanted it to all be integrated into the tool but i looked into it and i would need to port a lot of stuff to do that
Avatar
yeah you'd basically need to reimplement a part of SAModel and the NJA converter in it...
10:47
I can definitely help with setting up a split to NJA thing through SA Tools though
Avatar
yee it would be great if the tool basically worked like
10:48
through command args, give input file, key, address and output path and thats it
10:49
we'll see when i get there, im happy you're interested in helping though
Avatar
Avatar
Exant
through command args, give input file, key, address and output path and thats it
well there's the split command line tool that basically does that lol
Avatar
i wonder if that can run on linux
Avatar
under wine, maybe
10:55
it might be possible to make a native Linux binary because it wouldn't need WinForms or Direct3D stuff, but that might require some work on SAModel. I haven't tried
Avatar
yee thats what i was thinking of too, maybe ape the code a little bit on a separate branch and call it a day
10:55
im personally fine with it being windows-only rn
10:55
its just that as far as i understand the decomp scene has a pretty large linux userbase so
10:56
i dont wanna close potential contributors off
10:57
anyways this will definitely be a good start for now
Avatar
Probably possible to make a very crude version of SAModel that only does the structs stuff, but it involves quite a bit of work for some potential contributors that may or may not be there. I think all potential contributors are already on this server tbh lol
Avatar
well thats
11:03
definitely not my mentality
11:03
but yeah we'll see
12:03
done
Avatar
i started matching sirusi1.c
17:30
its very exciting (not)
17:30
its basically this function copy pasted like 8 times with different objects and collisions
17:30
Avatar
okay well the code matches
17:59
but that weird
17:59
big endian padding thing i talked about in the decomp channel or somewhere previously
17:59
i swear the fix for that worked
17:59
because i used it for particle.c on the regular sa1 decomp
17:59
and now it just
18:00
doesnt? lol
18:01
oh nvm
18:02
18:02
our first matching beta wv file 🎊
imaWave 4
Avatar
Avatar
Exant
our first matching beta wv file 🎊
sorry if it's a silly question but how do you account for incorrect pointers in looking at matching AD code for stages like WV
Avatar
i took the excel sheet with the broken pointers
9:58
first off made a symbols txt from them
9:59
9:59
which is basically what my splitter will use to (edited)
9:59
give names to addresses if there is one
9:59
and then i made an "fsy" file which is basically just an asm file with definitions for the names
9:59
9:59
under normal circumstances ,like on the sa2dc and sa1dc decomp
10:00
you can make the linker generate an fsy file
10:00
so there its like
10:00
compile 1st_read, generate fsy, and use that on the stage files
10:00
but since we dont really have that older 1st_read here i had to manually make the fsy
10:01
once this is done theoretically it could be very easily "matched up" to a working release or any other kind of 1st_read
10:01
not that theres necessarily too much use for that but yeah
Avatar
i see, so you're going from the corrected pointers based on the fixes since it would be incorrect if you tried the normal method with the stages not compiled for AD
10:01
i am using the "incorrect" pointers
10:01
which is why i had to do this roundabout thing
10:01
if i didnt then the binary wouldnt match
Avatar
i misinterpreted that you were taking the fixed ones from the fix spreadsheet for the symbols (edited)
Avatar
oh no i just meant that
10:02
the excel file already had like a pretty good list for
10:02
names of the broken pointers (edited)
Avatar
hopefully any future SA proto actually has its own compiled assets lol
Avatar
theres another file that i started matching yesterday but got stuck on its displaysub
11:54
it did some super bizarre shit for rotation and it caused a regswap
11:54
then, i just tried now a way smaller file as a little snack before i gtg
11:54
and its doing the same weird shit with the rotation, and same regswap
11:54
we need to figure this out cuz i have a feeling all objects are coded like this
11:55
11:55
its the njRotateY part thats weird
11:55
i can only get the actual rotation call part to match if i write it like this, but if i do then everything after it gets regswapped
11:55
in yesterday's file, rotateZ had the same macro that the sadx decomp has
11:56
so i dont get why rotateY doesnt do that same thing, why does it store it in a separate variable
Avatar
sorry if this is a dumb question, but is the = in the if condition ok? Shouldn't it be ==?
11:57
or is it like a variable
Avatar
thats intentional, what this basically does is assign it to the variable
11:57
and then check if the variable is != 0
Avatar
so its the same thing as having the equation on the line above it, and then if(angy)
11:57
except it only matches if i write it like this
11:58
i dont think this is how its supposed to match because its veery bizarre
11:58
"Angle" isnt even unsigned
11:58
yet i need it to be unsigned to make it match
12:04
i wish we had the decomp permuter
12:05
cuz thats basically all im doing rn but manually
16:46
goddammit, almost every displaysub has this pattern
16:46
so i guess for now i kinda have to avoid it until we figure out what it is lol
16:50
i think it has to be a macro since they do this thing in every single displayer
16:51
but then why didnt they do this for the rotateX/Z
Avatar
oh my god i got it to match but
18:10
i need to see how real it is
18:10
18:13
so first off this is how i fixed the rotation thing, how legit it is i dont know
18:13
but in this more complex function that also had that rotateX i kept talking about
18:13
then that one started having issues
18:14
18:14
which i fixed by both having that if(0) thing there, and adding a != 0
18:15
it would make sense if they had some weird shit in the macro that got killed off, some debug thing they had there once and then temporarily killed off with if(0) but yeah i dont know for sure
18:15
for now i guess fake matching is fine, this compiler bitches waaay too much about tiny things to be able to constantly care about fake matches
18:15
when i get home ill try matching the other function too using this same trick
Avatar
yeah, it did
18:37
i wonder if this will also be the case in sa1dc's other code
Avatar
time to finally render that sand hill video, I ended up getting distracted by a bunch of stuff last week
19:07
I put a little more effort into it than the other ones because I wanted to put the E3 SET on the end
Avatar
@ItsEasyActually sorry for the ping, just wondering if theres an object you guys are specifically interested in getting match decomped, cant really decide which one to pick rn lol
Avatar
ItsEasyActually 25.06.2024 20:28
the raft objects would be what i have the most interest in personally
Avatar
that's exactly the one i was starting to get curious about too, so great lol
20:29
saw all the debug text it had, looks interesting
Avatar
ItsEasyActually 25.06.2024 20:29
second to those would be the tornado spring since that seems to follow moving level geometry and i'm really curious how that works
20:29
but yeah, rafts have me most curious
20:29
since they're like
Avatar
supercoolsonic 25.06.2024 20:29
Baneiwa, too
Avatar
ItsEasyActually 25.06.2024 20:29
almost an entirely scrapped element of the game as a whole
Avatar
supercoolsonic 25.06.2024 20:30
I wanna know how it handles launching the player while also having solid collision for its backside
20:31
Ooh, ooh, and the tornado swerving
20:31
That drove me up a wall back then
Avatar
oh i saw that code
20:31
thats a nope from me for now lol
Avatar
supercoolsonic 25.06.2024 20:31
Dang
Avatar
anything with heavy amount of float instructions is like
20:31
exponentially harder to match
20:32
i spent weeks on some of those on sa2dc chao.bin, and even those probably didnt have half as much going on as a single tornado function
20:32
(ofc for you guys, nonmatching is still good enough of a resource, but yeah those are super intimidating to start on lol)
20:33
but yeah the others im interested in
Avatar
supercoolsonic 25.06.2024 20:33
Interested in Wele, too
20:33
And the Pu Wind extra leaf effects
Avatar
Dreamcast Mods Repo https://github.com/X-Hax/dreamcast-mods Git clone anywhere then copy DreamcastImageBuilder.exe there and run it.
PkR pinned a message to this channel. 26.06.2024 13:50
Avatar
Pls feel free to edit/add stuff to submods in the "Restored Levels" mod
13:51
anyone from the x-hax org can commit, let me know if you need write access
13:52
I had to make some minor changes (mod.ini names for submods, mod titles etc.), hope it's ok with you @woof
13:52
I haven't fully converted all mods to the new format (some of them replace whole PRS files instead of patching them) but I'll do it eventually. They should work in the current state though
Avatar
that's fine with me, i would need write access though
13:54
my github is also just woofmute
Avatar
sent you an invite
Avatar
thanks, accepted it
Avatar
heh, I forgot what I did to make Mystic Ruins bootable
Avatar
supercoolsonic 26.06.2024 14:04
Was gonna ask when that was gonna be released
Avatar
hmm... Chaos 0 doesn't boot with Speeps' PRS file
Avatar
supercoolsonic 26.06.2024 14:05
Are you using Demul?
Avatar
tried both Demul and flycast
Avatar
supercoolsonic 26.06.2024 14:05
Hmm
Avatar
it could be a mod conflict... we should do something with stuff that writes into unused space in 1ST_READ cause that may overlap between mods
Avatar
i had them booting with a pattern file made from the last version of speep's spreadsheet i have access to
Avatar
I had that too but somehow it doesn't work anymore
14:16
also, it looks like the hub stages use a different PL/SL naming pattern than final. I think it may have to do with daytime stuff
Avatar
hmm yeah they seem to load PL_Q0B
Avatar
tried to make a video for my own reference for final egg, the security door in act 2 remains open if you opened it and left the stage through pause menu. so when you return to act 2 and exit the corridor to the security door you just fall to your death instead.
Avatar
Avatar
PkR
hmm yeah they seem to load PL_Q0B
but it's weird, if you add PL_Q0B and SL_Q0B the Casino part with the Amy cutscene also uses it... but if those files aren't there, it loads PL_Q1B and other parts of the stage don't have lighting
Avatar
the act init i wanted to hijack for BGM in station square looks extremely cut down, specific only to checking to load two event files or dumping you at spawn before the event check kicks you next frame. have you tested if that's still the case if you try another character?
14:47
the lighting thing i mean
Avatar
seems to be the same for all characters
14:50
with default lighting files still left in AD, the Casino area and the hotel are locked to the evening, while the station, the Chaos 0 area and the Twinkle Park entrance don't have lighting
14:51
the skybox is the evening one btw
Avatar
would Q2B be night? wondering if there is only Q2B on the disc would it then go to those for the events
Avatar
in final, Q2B doesn't exist, Q3B is night and Q4B is day. Lemme try Q2B
15:04
the sewers area loaded Q2B
Avatar
maybe they wanted darker lighting in there lol. if that's the only area touching it. i know it ended up with day/evening/night lights in final jp
Avatar
ok yeah, station area loads Q3B lol
15:10
Twinkle Park entrance loaded Q5B
15:10
I guess it's like the Mystic Ruins in final, some acts load files according to act ID and others according to the time of day
15:13
to sum up, in the current state of the Autodemo: City Hall area loads Q0B but having that file overrides lighting in other acts Casino area loads Q1B Sewers area loads Q2B Station area loads Q3B Hotel area loads Q4B Twinkle Park area loads Q5B (edited)
Avatar
Avatar
supercoolsonic
Interested in Wele, too
btw, chose to do wele since it was more reasonable to take on for today
15:15
there's only one functionn left in it now
👀 1
15:28
i gtg, not matching yet at all but here it is so far
Avatar
Avatar
PkR
I guess it's like the Mystic Ruins in final, some acts load files according to act ID and others according to the time of day
maybe here its a weird interaction of an early time of day implementation and loading act specific files as fallback? lots seems missing from act init only accommodating whether to load two cutscenes or not
16:32
0x8C751616 is entrance ID
16:33
SS office has a few defined but so far only 00 and 04 make sense, 00 is default entrance by knuckles speed highway, 04 is shop back door
Avatar
it has a lot of spawns in it that work on the other maps, or are just slightly off. the twinkle park interior seems to have been shifted to the right at some point based on its used spawns and the unused ones. the base id shifts position based on act i think, but then i found one discrepancy with the casino spawns compared to the same ones from office which i thought were in the same list
17:51
did we maybe just miss out on station square as one whole area with this build
Avatar
the scene change object for EC pool takes you to twinkle park entrance interior despite being set up for 1C05 lol (edited)
Avatar
Avatar
woof
maybe here its a weird interaction of an early time of day implementation and loading act specific files as fallback? lots seems missing from act init only accommodating whether to load two cutscenes or not
We need to look at the actual code, but it could be that the daytime system wasn't there yet and they just use files matching act ID. As for why the file for the first act overrides other acts, it could be an error in the code, I've seen something similar in Sky Chase where Act 2 loads Act 1's file. I wonder if it applies to all levels? Maybe it's a bug (edited)
10:58
also there's that thing where SS had level IDs of 26, 27 and 28 for different times of day, maybe it's like that in this version
Avatar
i've not seen anything within station square init so far that seems to directly interact with lighting files, so probably all happens in a more generalised function within 1st_read around game init
Avatar
yeah it absolutely does
13:29
there are no hardcoded PL filenames as far as I know
Avatar
it'll generate the filename, i've analysed it doing that before for shooting's cam and set (edited)
14:52
PL and SL strings are defined, so probably just check what is referencing those outside of lighting debug functions (forgot how to properly escape discord formatting that with the underscores) (edited)
Avatar
it gets the proper file name based on this...
15:44
stage letter is just stage ID plus 0x37
15:44
1a+37 is Q
15:45
i checked it in as is because i can't spend more time in debugger rn
Avatar
this is one of those functions I'd like to see decomped from final someday lol
Avatar
sorry to interrupt, just wanted to notify @supercoolsonic (if pings bother you im sorry wont happen again) https://github.com/Exant64/sa1autodemo/blob/wele/src/stg02_windy/o_windy_ele.c WELE decomp is almost done, all functions are matching except the first one, but its definitely "functionally matching", all the first function has is some stupid regswap i can't figure out
17:25
since its functionally matching the code should already serve as a pretty good reference on how it works exactly
👀 1
Avatar
idk if its just my mod config or not, but i tested sky deck 1 on hardware and it loaded but as soon as sonic tried to grab the cylinder it crashed. that is where sonic goes invisible on emulator..
Avatar
sounds like some rendering function mismatch tbh
22:32
I'm sure there's something like that in Windy Valley too, the skybox warps in a strange way when the camera moves, and the game crashes when textures have mipmaps, there's got to be some wrong functions being used
Avatar
overdraw in lost world potentially related, or its correct and something is just bugged
Avatar
if it doesn't happen in Speed Highway with minimal modding it's probably something we did
23:21
no idea where it might be though lol
Avatar
Avatar
woof
idk if its just my mod config or not, but i tested sky deck 1 on hardware and it loaded but as soon as sonic tried to grab the cylinder it crashed. that is where sonic goes invisible on emulator..
oh I know what that is if it's the invisible thing, it's the pointer to sonic's model in his cylinder animation
0:34
change 8C180B0C -> 8C19B27C
Avatar
will test tomorrow ty imaWave
Avatar
Avatar
Speeps
oh I know what that is if it's the invisible thing, it's the pointer to sonic's model in his cylinder animation
is the animation broken or missing? I could try to restore it using data from final
0:57
or is it just the pointer to the model being wrong
Avatar
It's just the pointer to the model
6:16
the motion is in the stage file
Avatar
supercoolsonic 29.06.2024 2:47
Finally got around to making it
2:47
I made this partially from memory, partially from looking at some references
imaWave 1
Avatar
Mystic Ruins boots, I forgot to apply pointer patches to ADV02OBJ.PRS. Updated the mod on repo. There are some textures that weren't restored, I'll scan texlists and try to put back some more.
15:47
Chaos 0 doesn't boot and crashes demul with @Speeps ' file pls help
Avatar
did fixed chaos 0 get posted yet? (edited)
Avatar
missed it when we moved threads, ty
20:25
irritating demul and flycast have enough inaccuracies between them though for crashes... i've had code that was compiled for the correct version of the game crash in demul and not in flycast with rez
20:25
but so far demul has been closest to hardware in terms of where it crashes
20:25
for rez and this
20:26
apparently there was a demul debugger but the dev keeps it private..
20:26
may be worth reaching out to anyone somewhere like obscure gamers if they have a katana set 5 dev unit?
20:27
can run it with codescape over scsi and find where it's actually crashing that way
20:27
or wait for someone that knows what they're doing to build a retail unit debugger. as far as i understand the ext 2 port can do it but there's no hardware for the debug stub for codescape
Avatar
I wonder if redream is of any use? It should log where it crashed if it does
Avatar
I'm going to add a new feature that will let you specify multiple value types, so that you could write something like float/float/float/uint32 and patch a start position in a single line (edited)
PkR pinned a message to this channel. 30.06.2024 2:01
Avatar
i came up with a workaround for the limitation of only being able to play up to id 23 in BGM.AFS. if the ADX id is 24 or higher, i subtract 24 from it and then pass the new id back and make it seek inside of a BG2.AFS instead... i can put adx files in for every stage now if i find good ways to patch in each stage for it.
20:23
20:26
ids would be as follows: 00 chao 01 amy 02 big 03 e102 04 beach 1 05 beach 2 06 beach big 07 chaos 0 cutscene -unused 08 strain -unused 09 eggman fanfare 0a final egg 1 0b final egg 2 0c fish hit 0d highway 1 0e building 0f ice cap 2 10 ice cap 3 11 knuckles 12 ruin 1 -unused 13 ruin 2 -unused 14 ruin 3 -unused 15 fish caught 16 mountain 1 17 mountain 2 18 station square -unused 19 sonic 1a tails 1b super sonic -unused 1c title short expanded 1d windy 1 1e windy 2 1f windy 3 20 twinkle 1 21 twinkle 2 22 twinkle 3 23 sky deck 1 00/24 sky deck 2 -bg2 01/25 casinopolis 1 02/26 casinopolis 2 03/27 casinopolis 3 04/28 casinopolis 4 05/29 boss event 06/2a chaos 0 07/2b chaos 6 08/2c vs eggman bossall 09/2d eggmobile 23 0a/2e eggmanrobo 0b/2f e-series bosstrgt 0c/30 e101 r 0d/31 egg carrier 0e/32 mystic ruins 0f/33 cart 10/34 shooting 11/35 sand hill 12/36 chao race
0:42
Also, I bet we can recover stage-specific sounds too if we figure out a way to make broken stages load MLT files. It should be similar to how we restored PVMs
Avatar
current version of music restores, it implements BG2.AFS and so far has music working in Emerald Coast, Windy Valley, Sky Deck, Lost World and four acts of Final Egg. it would likely need to be below level restore mods. i've tried to ensure my patch code per stage isn't being stepped on by the stage during execution, its mostly at the end of each file. i've positioned it a little further for Lost World and Windy Valley. this is bundled with both BGM.AFS and BG2.AFS for convenience but i'm uploading it to my drive as a result. https://drive.google.com/file/d/1GR35x0-Zo9faiYMcj6C-8l4bQPd1vu8v/view?usp=sharing
Avatar
too risky for the repo because it has music in it?
Avatar
maybe. i need to write up a guide for just making the banks with archivetool, its not that hard at all now since you modified the tool
1:16
but the ids matter and would have to match the list i posted above
Avatar
I could put together a small script for that
1:30
maybe even a small tool that works without SA Tools...
Avatar
ok, i am also getting a crash on load with chaos 0 rn
18:44
tested with only these mods and only chaos 0 being enabled in restored levels, demul dies and flycast debug gets sh4 exception while blocked which makes it impossible to look at exception handler for it
Avatar
i want to patch station square to restore its music but its version of ActInit is only event handling. i could gut the event init and repurpose that, but otherwise i have to invent a more complicated function that stores its own mode and checks if the cutscene check ptr is null for cutscene end. i could hook it from the return from this function maybe? but i'm wondering if preference right now is to just remove event init entirely so no events play here
19:17
i'd also have to modify the way my don't kick from hubs patch works but it would be minimal and effectively do the same thing
19:18
maybe if i hijack mode 02 of this. i'll try that for now
Avatar
i did the more complicated thing 😭
20:25
what would help now is finding the event screen fade thing and making it remove itself
20:27
can also patch within my hijack to enable controls when no event is happening here
20:27
which would mean the other SS acts don't lock you into no controls
Avatar
i'm patching to enable controls within don't kick from hubs instead, so instead of setting stage mode to exit it enables controls by calling the function for it.
21:07
this doesn't fix stages like cart or other chao gardens though, they still start with controls disabled. so this doesn't replace the mod to force enable controls always.. but all hubs enable controls when it fails the cutscene pointer check now.
Avatar
you can disable the event fade by nopping the call to njDrawPolygon2d inside the event file. with that method you'd have to do that for each event file, but i'd rather that than break fades entirely. events ending don't reset the game speed value.
Avatar
current music restores (without banks) and updated don't kick from hubs are on the git now, it doesn't prevent fades in all events yet. the banks i posted in this will work just fine with it, they're already set up with all the files i'm planning to use and just need to go into an include folder beside the mod ini https://discord.com/channels/446023672147345418/1248608194436141178/1257141546600628234 (edited)
Avatar
but i'm wondering if preference right now is to just remove event init entirely so no events play here
IMO events present limited interest because they're available in the vanilla autodemo and only get in the way of exploring stages, so cutting them entirely would be fine
23:24
I remember the fadeout problem from when I was trying to make cutscenes skippable in final. IIRC there's a variable that controls the amount of fade and the object auto deletes if it's set to 0 or 255.
23:25
if you can get to the fadeout task, you can set mode in its taskwk to 2 to delete it
Avatar
in the final, there's also a table of fade-in/fade-out data for events, dunno if it's the same in the autodemo but if you erase the event ID from there the fade won't be created
Avatar
i'd gotten far enough in the event file to find where it creates a task that uses switch cases and is involved with every fade but was too tired to investigate more
Avatar
Avatar
PkR
but i'm wondering if preference right now is to just remove event init entirely so no events play here
IMO events present limited interest because they're available in the vanilla autodemo and only get in the way of exploring stages, so cutting them entirely would be fine
i can cut out the event init and just use the space to call bgmtask for the music and do any other calls needed instead. gets a little beyond just being music restores then though but easier to do that compared to restoring it with functional events
Avatar
ok so, much tidier with no event to handle, SS will run through this as its act init on mode 00 for one frame, then it sets mode 01 and skips repeating it. this sets up BGMTask, sends the ADX ID, and enables controls. i'm removing enable controls from Don't Kick from Hubs mod, i will handle it in each hub myself when i clear the event init from EC and sort BGM in MR. this prevents it interfering with SetEdit but will still prevent the pointer check from kicking you.
Avatar
so tempting to get sidetracked wanting to fix up egg carrier though lol
20:33
the warps send you to station square segments instead of EC, so they haven't been properly sorted to account for station square being split up i think? but those should be all done through actchange objects and not hard to fix
Avatar
MR C crashing might be an object issue afterall, its the only act there with a different act init that seems to create an object task (0ca80960). it lines up with the crash occurring only by turning the camera towards big's house
21:28
@Speeps sorry for the ping, but tagging you incase this gets buried
Avatar
github mods repo has the latest versions of Music Restores and Don't Kick From Hubs. Music Restores works for all hubs now and gets rid of events in hubs and enables controls there. Don't Kick was modified to only nop setting stage exit for no cutscene.
Avatar
supercoolsonic 03.07.2024 15:21
My bad. Forgot a texture (W_wv8)
Avatar
I'm taking a break because fixing 7 bosses sounds awful but FYI IDA's graph view displays 1stread pointers more clearly than Ghidra does
18:04
you could go to that object's address in IDA, create function and then go to graph view so it'll link all the branches
Avatar
i'd like to try but i gotta find IDA again
Avatar
oh lmao, ok nice
Avatar
flycast debug dev is implementing r/w/e breakpoints and making it so that when a breakpoint is overwitten in ram it doesn't delete it from the list but just disables it
16:58
i think a build supporting that should be up in artifacts now
Avatar
Avatar
woof
flycast debug dev is implementing r/w/e breakpoints and making it so that when a breakpoint is overwitten in ram it doesn't delete it from the list but just disables it
FUCK yes
17:37
ah nvm i misread it, thought it said that when it gets overwritten it remains enabled
17:38
regardless any upgrade to it is good
Avatar
that's something the dev wants to get to, but for now the priority has been implementing rwe and not deleting the entry
18:31
would love that feature too though, its not too bad once you know where the execution handover to other binaries is but good luck until then
18:33
at least for now you could add your other binary bps, save state, then break at the handover. in autodemo for example, its safe to set a breakpoint at stage bin handover once the level select text disappears cause there will be a few frames where it stops jumping to tasks. probably the same in final SA1
18:34
once it hits handover and has a stage pointer in r14, you could then enable all stage bps you want
Avatar
awa.. finally making some progress lol
1:53
got at least item stand and dig place1 to display. next object crashed
👀 2
1:55
so far i found these pointers in ADV02OBJ that seemed invalid 8c043598 - null code -> 8c044e4a intended? (advance act old ptr near, 56 bytes behind) 8c02e9c0 - middle of a function -> 8c02fe40 intended? (scenechanger old ptr near, 2c2 bytes behind) 8c066a40 - middle of a function -> 8c06ab5e intended? (countcharacters old ptr near, 38 bytes ahead) 8c098e9a - null code -> 8c0a4bbe intended? (nearest old ptr is e102beamtaskpointer, bcfe bytes ahead) 8c58fd4a - jump to not code -> 8c5ad94a intended? (drawshapemotion old ptr near, 11f4 behind)
2:02
so far of the ones i can cycle to in setedit, i have these displaying: item stand, dig place1, eggmandoor, sandswitch leaving only dig place2 and knuckles door confirmed not working yet. kill switch, monkey cage and island door i can't cycle to due to those.
Avatar
almost everything else does display on flycast, only crashing at monkey cage there.
Avatar
something is still wrong with MR C, i'll look more tomorrow though
11:26
sorry I'm screwed at work lol, will implement more stuff in the image builder soon
Avatar
the only pointer hitting a breakpoint for each object has been 8c02fe40, it also hits for the switch object in the common obj list. so i think for now that is the only one i can say is definitely valid of those changes. monkey cage crashed without hitting breakpoint on any of them, so there's gotta be something more to it. same for the MR C crash.
Avatar
i think the only thing left it could be are pointers to what is probably supposed to be model related data within 1st_read, there are several like that.
Avatar
try replacing them with pointers to something valid or null
Avatar
is it possible to export a list of object pointers from 1st_read? i know SAModel can detect them and i could do it manually... just slow
Avatar
If you use the split command line tool with the manual split BAT files it will log all addresses used in the INI file... but at that point you might just look at the actual INI file
Avatar
i'll just reference ini for now, its more convenient. not wanting to sort formatting it to symbols rn
Avatar
what kind of format do you need for the list? I could get you something quick cause I have some tools for similar purposes
Avatar
importsymbolsscript in ghidra takes this format: SymbolName 8c010000 AnotherSymbol 8c7589a0
15:01
name, space seperator, address
15:02
i've been using regex to format lists from speeps spreadsheets that have worked but the data there was in a more compatible format to start with
Avatar
only models or everything?
Avatar
everything might be more helpful but right now i think i only need models
15:04
if it was everything it could be combined with current 1st_read ghidra symbols and speeps fixed symbols to be imported as one big thing that labels half the game lol
Avatar
like this?
14.26 KB
15:24
oh I guess I should replace spaces and reverse the order (edited)
15:31
Avatar
that looks good thank you, i'd have to trim the section titles but that's fine
Avatar
so the reason i can't even test monkey cage is it tries to load multiple texlists but three of them are null pointers and it never returns from the jump to load the first null one
Avatar
the object MR C spawns that isn't in the object list is the top half of the ruin
Avatar
oh yeah, it's also like that in final iirc
Avatar
makes sense cause it has to move up. seems to be able to call a function for creating smoke, so maybe it has its animation intact.. MR also has code that seems to be related to flag debug stuff but it's near a similar rts nop zone as station square had. one of the suspected invalid pointers is within that.
2:59
no progress on why MR C is unstable yet though. monkey cage had 9 references to 1st_read data and that matched the number of models and anims involved for kiki (sura), but i haven't gotten any i've tried to work for that yet. testing that, i crashed demul so hard windows dropped every process i owned and kernel wasn't happy about it. chaodrown
Avatar
Demul tends to stick around and eat memory if it crashes, keep an eye on it in task manager
Avatar
normally i end its process cause the process becomes a ghost in bad crashes but this one was a little different
6:52
like once it finally was able to be closed, i noticed cheatengine's list of processes became only physical memory with no processes listed and then windows threw me to bsod shortly after. it was fine though after restart
Avatar
Avatar
woof
normally i end its process cause the process becomes a ghost in bad crashes but this one was a little different
I implemented the stop button for this reason lol. It kills the process when it gets stuck
Avatar
Updated the patch system, you can write data like this now: ; Chao Race start position for Sonic (replaces MR Garden) 15F4CC,Uint16/Uint16/float/float/float/Uint16=40/0/-170/60/-25/32517
Avatar
wooooooah
Avatar
for monkeycage i have some of this seeming correct so far, but now it resets to bios instead of crashing. broken jumps: 8c02e9c0 - middle of a function -> 8c02fe40 intended? (scenechanger old ptr near, 2c2 bytes behind, with this all other objects don't crash), 8c58fd4a - jump to not code -> 8c5ad94a intended? (drawshapemotion old ptr near, 11f4 behind, njroundoff near, ef6 ahead) (there is another instance in 1ST_READ where this is jumped to before CalcMMMotion, it takes a value in r4). broken data pointer? 8c54da84 broken model pointers (for call to EasyDrawModel): 8c54dbe8 8c54dd7c broken action pointers: 8c54ef44 -> 8c56cb2c monkeycage_kikicelebratebackflip 8c54feb8 -> 8c56daa0 monkeycage_kikicelebratejump 8c55102c -> 8c56ec14 monkeycage_kikimoving 8c551e70 -> 8c56fa58 monkeycage_kikithrowbomb 8c552de4 -> 8c5709cc monkeycage_kikijump 8c553988 -> 8c571570 monkeycage_kikiscratching i'm unsure about the model pointers. the last two are definitely going to be used in a call for EasyDrawModel, the first might need to be something else entirely. it is ahead of the call to what i set to 8c5ad94a and goes into stack. i tried with three model pointers from kiki, kikitail and kikitailend. the action pointers have the same distance between them for broken and fixed ones. (edited)
22:44
i'll continue tomorrow but it would probably help to figure out what exactly the function @ 8c5ad94a is, or if that should be something else.
22:50
i still have the three null texlist loads it tries nopped, 0ca8247e, 0ca82484, 0ca8248a
Avatar
difference between old kiki action and the first broken data pointer is 14c0, subtracting from the fixed action pointer that is the exact location of kiki njs model, so those three data pointers should be models and i had the correct ones. 8c54da84 -> 8c56b66c monkeycage_kikimdl, 8c54dbe8 -> 8c56b7d0 monkeycage_kikitailmdl, 8c54dd7c -> 8c56b964 monkeycage_kikitailendmdl seemingly leaving only the 8c5ad94a function call or the texlist stuff as the issue.
Avatar
lmao ok it works! i don't know why it is correct today trying this but the only thing left are 3 of the four texlists it wants being null
knuxhappy 2
19:49
i don't know where to begin with fixing up texlist things, i'm assuming loose pvrs might work but if it wants a pvm i'd rather do it properly
Avatar
only resetting by cycling to another object from monkey cage now. its a bit weird...
Avatar
for now i am just going to release this as a test mod if anybody else wants to look into it. item stand calls two models but does not seem to actually be displaying them, seems to be for the switch that is on top of it in other versions. MonkeyCage seems correct until it resets when the game tries to stop drawing it and i'm a bit lost on why it is doing this. every other pointer i've changed goes somewhere that seems valid in its context and none of it seems to be directly leading to crashes. still don't know why MR C is unstable but i want to investigate that. pointers from my pattern file (name, broken ptr, fixed ptr): FlagDebugThing,8c043598,8c044e44 ObjPrintSomeParamStrings,8c02e9c0,8c02fe40 GetPlayerID,8c066a40,8c06ab5e KnucklesDigActionThing,8c098e9a,8c09d060 MonkeyCageActionThing,8c58fd4a,8c5ad94a modelSwitchBase,8c162dc8,8c17a480 modelSwitchButton,8c162a6c,8c17a124 monkeycage_kikimdl,8c54da84,8c56b66c monkeycage_kikitailmdl,8c54dbe8,8c56b7d0 monkeycage_kikitailendmdl,8c54dd7c,8c56b964 monkeycage_kikicelebratebackflip,8c54ef44,8c56cb2c monkeycage_kikicelebratejump,8c54feb8,8c56daa0 monkeycage_kikimoving,8c55102c,8c56ec14 monkeycage_kikithrowbomb,8c551e70,8c56fa58 monkeycage_kikijump,8c552de4,8c5709cc monkeycage_kikiscratching,8c553988,8c571570 (edited)
Avatar
Use github repo pls
Avatar
i will do that since you said, but i thought it best not to until this was actually properly working and integrated into stage restores
2:08
do you want me to integrate it into that now
Avatar
If we don’t use it and just drop stuff to chat, it’s really hard to keep track of, so even WIP is ok on repo
2:08
Yeah no problem integrating ir
Avatar
Avatar
PkR
Yeah no problem integrating ir
descriptions for submods do not display scrollbar like regular mods do, highlighting text works to view the rest of it
2:34
its up now
Avatar
ohh I'll fix that, thx fixed (edited)
18:34
i think i'm going to prioritise finishing bgm stuff for every stage other than the bosses until there's more progress with those to avoid breaking them. debugging mr c instability when i need a break from that. i thought about maybe refactoring debug restores to call createsometask and pass setedit and camedit to that, but the way i'm doing it is enough for it to work so far so i don't think it's really needed.
18:34
i'd probably still try it eventually.
18:36
had a glance at final version and it's probably the same situation with setedit and camedit being compiled but never called
Avatar
doing more bgm implementing, twinkle park is a fun case. i hijacked act init to do bgm and this works if you load the stage from level select but if you go through a scenechanger into another act it doesn't reinitialise. so it continues playing act 2 bgm in act3 this way... i think i have to hijack the actloops instead, and then implement a counter to check for bgm already being initialised to skip it. hopefully not needing to figure out how to kill tasks imaNoUse
8:59
finding it so interesting how different each stage is handling act init though, just a shame it means more work per stage. i don't think it had been an issue in stages like sky deck, but that seemed to already have half the bgm implementation in so it probably accounts for it on act change
Avatar
so BGM was not implemented in some stages at all? That's interesting, I thought they just disabled it for levels not included in the demo
10:07
though maybe it was commented out. who knows
Avatar
Avatar
PkR
though maybe it was commented out. who knows
all i know from the asm is the act init code in most stages doesn't make calls to it when it sets up tasks, sky deck does set up the adx id to play but doesn't send bgm task to the createsometask function (edited)
11:12
emerald coast only does it for big's stage and the event for big, station square and egg carrier set up the task but leave it to the event to send the adx id
11:15
the template i try to follow is to call CreateSomeTask while passing the BGM Task pointer to it and then when it returns i send the adx id to SendBGMID and then return to normal execution, and this works mostly, except for cases like twinkle park that don't run act init for one frame on each act
11:17
could be that all stages i implemented bgm for have this bug, there's probably something specific implemented for changing act that handles this and stages that weren't already set up for bgm on each act aren't doing it..
Avatar
when the fun is over..
amysad 1
21:34
it shouldn't be hard to fix that, i just made a bad assumption on one act init branch
Avatar
ok it works and accounts for dying and accounts for changing act within the stage, i'll upload it later tonight chaodrown
👍 1
22:49
so far probably the most annoying one for space available and where it needed patching, and now its given me new things to test for the other stages i did lol
Avatar
anyone else had setedit crash in windy 2?
19:36
i was sure i'd used it there before without issue
19:39
or sky deck playing the first mpb sfx (siren) loudly in a loop if you die or change act within the stage
Avatar
twinkle park was the only case of weird act init so far after testing all the other stages i did bgm support for thankfully, its up on github now (edited)
Avatar
i'm doing casinopolis right now and i have a question about a symbol name that i assume came from SADX 360. previously i had a function marked as CreateSomeTask but from a later version of speeps spreadsheet it is marked as CreateElementalTask. what would elemental mean in this context? that the task is an element of another like a subtask?
Avatar
iirc it's a type of task that has taskwk but no other extra stuff
13:42
Avatar
thanks. seems easy enough to work with, reworking debug restores to use it instead of basically doing its work myself would be nice (unless it introduces dynamic pointer allocation and breaks camfix lol)
13:53
for the sake of asm patching in autodemo, it takes the task pointer to create in r6, and based on another stage where they did implement it themselves, two values in r5 and r4
Avatar
the other two values are probably the task index and task flags
Avatar
i keep worrying that one of them will conflict with something else but using r5 1 and r4 2 each time i do this has worked so far so i've not investigated what they are specifically yet
Avatar
done, i also still really like how the ninja lighting system works for the blockout stages
Avatar
did you do anything else beyond the old stuff to get ninja lights
Avatar
i'm just using the patch you made previously
15:16
I need to figure out how to fix it
Avatar
was the patch worked on at all since the last time you described the issues with it?
15:31
if not i can go find the last time the issues were discussed
Avatar
not much... I was trying to find better functions to replace but somehow it didn't work out as well as it did in the final version, and even that had problems
Avatar
have you verified in ghidra or ida that the functions you call look the same or close enough between the two?
Avatar
I'm not sure I have the functions I hacked in the final version anymore
Avatar
today's new bgm implementation special case is minicart has no stage code in its bin
17:53
chaos 2 was easy and is done
Avatar
Avatar
PkR
I'm not sure I have the functions I hacked in the final version anymore
if you do have the patch or codes around anywhere i'd like to look at it sometime (edited)
Avatar
I pushed what I could recover. There's a working hack for the landtable but it slows down the game a lot and makes some meshes transparent, not sure why
2:25
like no idea why tf this is visible (edited)
2:26
it's like, the farther away you are from the mesh, the more transparent it becomes
Avatar
the state of MR C crashes rn is if you press B or go near the middle of the ruins or turn camera after going to big's house it crashes. i don't understand where it goes wrong yet, but it seems to be a pretty severe bad write obliterating lots of dc ram.. i have tested changing MR C act init branches so it skips setting up the ruintop object and skips trying to destroy that task now that it won't be created. i think that rules out that object as the primary cause, the crashes remained. the object seemed to display fine but it does make several calls to a CreateSmoke function i want to investigate more. but it seems to imply a function call or parameter for a function call somewhere is incorrect, i'll still look at the ones i changed but i'm at the point where i need to look at the ones changed in MR from speep's sheet too as mine don't seem to have any relevance for these crashes.
Avatar
i at least fixed monkey cage crash, it wasn't enough to supply valid pointers for the null texlist loads, it also seperately does texlist release on the same null pointers stored in a different location
Avatar
supplying pointers to sura tex data sort of works but not looking correct, i assume its trying to use texture ids that have changed?
Avatar
what's sura?
11:47
the final game uses the object PVM apparently
Avatar
i meant saru, i thought this was kiki's model name. its listed on the file name in SAMdl
11:50
the killswitch interaction works
Avatar
maybe it glitches because the cage that is rendered first sets the wrong textures
Avatar
it uses four texlists and only one was pointed to and has name pointers in it, probably for the cage itself. i need to go looking for textures
Avatar
oh is it like a separate texlist for each individual texture?
12:01
in final the cage uses 5 textures it seems
12:01
maybe 6
Avatar
it has four texlist pointer entries supplied but three are null, those three null ones when given kiki pointers will apply textures to kiki.
12:03
the valid one goes to this list
Avatar
looks like MROBJ...
Avatar
another one to fix with a name pointer restore maybe
Avatar
hm, we don't have the textures for it restored in the mods
12:05
I can reconstruct the PVM and/or the PVRs used by it
Avatar
i can append a name to the end of the stage bin after the MR BGM patch code but i have to look at how i was doing it before when i made it into a patch
12:07
or find space in 1st_read if it has to be there
Avatar
are you sure CAABA98 is an NJS_TEXLIST?
12:16
uhh hold on, where is this? 1ABA98 is outside ADV02.BIN
Avatar
its all in ADV02OBJ.BIN
Avatar
ah okay that makes more sense
Avatar
Avatar
PkR
are you sure CAABA98 is an NJS_TEXLIST?
and not sure, its just passed along on the call to loadsometexlist
Avatar
yeah it's valid
12:21
lol it's just the cage textures
12:22
40.78 KB
12:22
all reconstructed from already existing textures in the Autodemo
12:23
if you can't load it as a PVM, try putting raw PVRs in gdroot, might work
Avatar
trying to get it to load a prs and pvm properly is more of a pain than i want rn, it lacks a pointer to a pointer to a string and anything else it wanted in that list. loose pvrs worked though that bit at the front of the light wasn't one of them (edited)
14:00
the other objects there also have broken missing textures so i'd need to go through and look at each name it specifies in adv02obj
Avatar
I mentioned in the old thread that the ST was missing features in the final and that was just from taking a quick look at 1st_Read. Got it to display in the final and yeah, it's trimmed down a bit compared to AD.
Avatar
updating either graphics driver or image builder seems to have made sky chase egg carrier display darker and greener? i have no idea why it would do this lol, if anyone else can reproduce this or not that would be good to know
Avatar
Avatar
MainJP
I mentioned in the old thread that the ST was missing features in the final and that was just from taking a quick look at 1st_Read. Got it to display in the final and yeah, it's trimmed down a bit compared to AD.
the note function seems to be inoperable in AD anyway, seems it was already being changed
20:42
i have bgm restored for sky chase and also call the function to set up camera so it forces knuckles cam for both acts and should be done for all starting paths (end of first act 2 path resets it to default cam)
20:44
the tornado being moved ahead quick near the end of paths breaks the camera until it catches up but for now this is the best camera i have without more testing
Avatar
new version of music restores is on the github now, the modified afs banks are linked in its description but i'll post here too https://dcmods.unreliable.network/owncloud/data/PiKeyAr/files/SA1%20research/autodemo/files/SAAD_MusicRestoresAFS.7z
20:57
i just have sunaboard and the rest of the chao stages left to do beyond all unfixed bosses
Avatar
Avatar
woof
updating either graphics driver or image builder seems to have made sky chase egg carrier display darker and greener? i have no idea why it would do this lol, if anyone else can reproduce this or not that would be good to know
This is a pretty interesting thing, the Egg Carrier in Sky Chase appears to be rendered using the functions that ignore palette lighting, and thus it is using Ninja Lights set up in the SL file. The green is from here
3:24
it looked different before because the Lighting mod restored files based on the assumption the PL/SL filenames are the same in final and Autodemo, which I found out they aren't. Level IDs that are different from the final version: 34 Twinkle Circuit (Y0B) 35 Sky Chase Act 1 (Z0B) 35 Sky Chase Act 2 (Z0B - looks like it loads the one for Act 1 even if the one for Act 2 exists) 36 Sand Hill (1A0B) 37 SS garden (1B0B) 38 EC garden (1C0B) 39 MR garden (1D0B) 40 Chao Race (1E0B) It is now using the correct versions of these files, but SL Light data is from final and it could've been different in the Autodemo. Sadly we don't have SL_Z0B from the original Sky Chase.
Avatar
here's a version with the green fixed to white
Avatar
can we have a single version of Speeps' Excel sheet that everyone can update?
Avatar
just putting it on github would be fine I think
Avatar
Avatar
PkR
here's a version with the green fixed to white
i'm so glad it's not a me issue.. the dragon was affected too. i kind of want to include it as a fix mod if it doesn't go into the lighting mod
Avatar
Avatar
PkR
just putting it on github would be fine I think
also for this we have the latest version (hope it's the latest) of it from chaos 0 and then the only changes would be any functions named in shared ghidra that it doesn't include and the functions my mr work uses (separated in the pattern file)
10:59
getting the function labels out of ghidra isn't too annoying to do
Avatar
made some progress on the Ninja Lights mod. Figuring out more of the game's rendering functions
Avatar
it's still gonna take a while before this is actually functional, but I was able to figure out the following: ; Functions that use Ninja Lights ; 8C5AECBC is njAction ; 8C5AF9B2 is njEasyAction ; 8C5FDE50 is njDrawModel ; 8C5C1CBC is njEasyDrawModel? ; 8C5FDEB2 is njDrawObject ; 8C5C1CD2 is njEasyDrawObject? ; Functions that use Lantern lighting ; 8C03068C is dsDrawModel ; 8C030592 is dsDrawObject ; 8C5AC6BA is DrawAction
12:36
the idea is to replace all pointers to Lantern rendering functions with pointers to Ninja Lights rendering functions but bulk replacing causes glitches, so I'll have to go through all of those pointers in 1ST_READ and only replace the ones called in object display functions
Avatar
ItsEasyActually 26.07.2024 12:56
very much so looking forward to seeing how this pans out
Avatar
how do I fix the "read only" thing?
Avatar
weird... I had to open the GPR file manually
Avatar
we had a problem with booting one of the test stages right? I dunno what I did but I can boot all of them
15:02
oooh lmao, the WIP ninja light hack can make Practice 2 boot
15:05
I found out Practice 2 causes the console to reboot when trying to render some landtable item. Replacing the landtable model rendering function with the Ninja Light one makes it work, so I think it's something invalid in Practice 2 landtable causing the crash.
Avatar
those stages seem designed only for ninja lighting anyway
15:07
relying on vertex colours again like the blockouts
Avatar
yeah but the other stages don't crash
15:11
I wonder if it's because one of the meshes is really big
Avatar
i just mean whatever is broken there under PL probably didn't matter at the time
Avatar
removing the visible flag on the first COL item makes it work without Ninja Lights
15:24
I don't see anything obviously wrong with it... hmm
Avatar
okay, looks like I guessed right
15:35
the vertices array is too big
smolsonk 1
15:40
there are 2297 vertices, more than 2068 chokes it
15:42
[STG00.PRS] 22DDC,sint16=2068 This will prevent it from crashing at the cost of not processing some 200 vertices/normals
15:42
so there's the answer @Speeps
Avatar
nice
Avatar
did we not have mr garden fixed already, was that ever uploaded
Avatar
supercoolsonic 26.07.2024 15:57
Afaik, it wasn't fixed
15:57
Or uploaded
Avatar
ok done and uploaded, only three pointers needed fixing and i fixed its start pos, i also modified alife race to have its start pos replace final 6 and to add the corrected ring pointer so setedit doesn't crash
16:43
the chao spawn off the map in the void somewhere lol. still going chao chao...
16:45
it doesn't do bgm so i'll patch for that. eg garden and alife race need patching to enable controls (edited)
Avatar
Avatar
woof
it doesn't do bgm so i'll patch for that. eg garden and alife race need patching to enable controls (edited)
You don't have to patch controls per stage. There's the "Enable Player Controls" mod built into the image builder
Avatar
that method interferes with setedit
Avatar
why? It just nops the calls to the function that disables controls
Avatar
setedit calls that function to prevent moving while placing objects. if you're just nopping calls to it then i can just remove the issue one probably
Avatar
what was dangerous about the old one
Avatar
it activated controls in cutscenes which made it possible to crash the game
Avatar
supercoolsonic 27.07.2024 1:29
The MR Garden code does not seem to work. The level still crashes upon trying to load it
1:29
I also had to remove the 1ST_READ start position code to get it to build
Avatar
works for me
1:30
maybe your image builder is outdated
Avatar
supercoolsonic 27.07.2024 1:31
Ah that's it.
1:31
Thanks
1:31
Didn't realize there was an update
Avatar
mr garden and chao race have music now, doing sandboard then uploading. i'll do the remaining unfixed stages once they are bootable, will be away for a week on thursday though
Avatar
bgm and with proper cam.. don't know why sandboard struggles with forcing you onto the board though, in icecap its enough to call the same functions for setting control to board and spawning the board
Avatar
uploaded now
Avatar
Perfect Chaos boots because it was gutted
14:52
the lone GetStageNumber is a giveaway
14:53
also results for njPopMatrix: 1 (in Bg_Chaos7) lmao
Avatar
supercoolsonic 27.07.2024 15:18
Oh lol
15:20
So we have no early code for PC. Zamn
Avatar
ZERO has no pointers to rd or bg functions in 1st_read but the file itself has them
Avatar
supercoolsonic 27.07.2024 16:33
Oh… huh
Avatar
well I restored both the rd and bg, the rd creates the object for Zero but he doesn't show up and doesn't seem to have that much code to begin with in this (edited)
Avatar
supercoolsonic 27.07.2024 18:39
What’s there?
Avatar
his textures don't exist and I'm not sure if his actions do either, I replaced the texlist ref with the common object ones and used 8C5AA8A4 for all his actions (I think this is a stage one though, either way I don't feel like fixing all 20 without at least getting him to show up lol)
Avatar
supercoolsonic 27.07.2024 18:42
Hmm
18:42
Avatar
supercoolsonic 27.07.2024 18:44
That’s it? That’s ZERO’s code?
Avatar
those subs aren't very big
Avatar
supercoolsonic 27.07.2024 18:44
Yeah
18:45
I’d imagine he wouldn’t really do much
Avatar
there's an unreferenced function at 0xC90054C, no idea what that is though
Avatar
supercoolsonic 27.07.2024 18:47
Does it reference any models or anims?
Avatar
might be his lock-on because it uses njDrawLine3D a bunch
Avatar
supercoolsonic 27.07.2024 18:51
Either that or a debug function or somethin
Avatar
yeah or that
18:54
Avatar
supercoolsonic 27.07.2024 18:54
The lock on
18:55
Ah okay
Avatar
he definitely exists because sonic's homing attack locks on to where he spawns
Avatar
supercoolsonic 27.07.2024 18:57
Maybe it doesn’t render his model?
18:57
Or is there coding for that?
Avatar
it uses drawaction
Avatar
supercoolsonic 27.07.2024 18:58
Ooh
18:58
I see the problem
Avatar
hold on I gave the action pointer a motion lol
Avatar
supercoolsonic 27.07.2024 19:04
Oop
Avatar
well I made it use 8C5AA8B0 but he still ain't showing up
19:12
unborn object
🟢 2
Avatar
supercoolsonic 27.07.2024 19:17
Sphere
19:18
Oh
19:18
The arena uses the flattened version from the final, instead of the raised version present in the hub
19:18
Huh
Avatar
oh yeah, I didn't even notice lol
19:26
well regardless here's the stage as it is
Avatar
Avatar
Speeps
unborn object
nice composition in this image, thanks
🟢 1
Avatar
I think I got E102KillCursorOnly confused, according to the code in 360: E102KillCursor: 8C0AAA10 E102KillCursorOnly: 8C0AAAA0
21:51
It barely makes a difference though tbh
22:22
he doesn't have any of his attacks yet afaik
Avatar
supercoolsonic 27.07.2024 22:22
Yooo
Avatar
Avatar
Speeps
well regardless here's the stage as it is
do you mind if i push the current version of b_robo to mods repo (i also added it to restored levels mod.ini list and changed its pointers to big endian format in the ini)
Avatar
Avatar
woof
do you mind if i push the current version of b_robo to mods repo (i also added it to restored levels mod.ini list and changed its pointers to big endian format in the ini)
sure, lemme send you this one too first though
22:29
beating him just restarts the fight, also the camera gets stuck after the intro camera so you have to use debug to move it
Avatar
its like chaos 2, press X and use that for targeting instead
Avatar
ah yeah, you can press X to move the cam
22:32
his blocking is weird because it only seems to work when the camera is static
22:33
okay no it does work while it's moving but it's still strange
Avatar
Hi Speeps, good to see you back. Any chance you could revisit Chaos 0? I was never able to get it to boot. Also, would you mind putting your pointer excel on github? We could all work on it to keep it updated. There are some discrepancies between the excel and the actual patched stage files you provided, not sure which is better to use.
Avatar
i broke the fight ending by spam shooting e101..
22:36
pushed to repo
Avatar
Avatar
PkR
Hi Speeps, good to see you back. Any chance you could revisit Chaos 0? I was never able to get it to boot. Also, would you mind putting your pointer excel on github? We could all work on it to keep it updated. There are some discrepancies between the excel and the actual patched stage files you provided, not sure which is better to use.
I don't have a clue what's happening with it either, I've tried running it without an Rd or Bg and it still crashed iirc
Avatar
seems to crash before it ever hits the breakpoint for the execute task jump on load
Avatar
also with the patched stage files the excel document should be the most up to date
23:17
The only things that aren't in it I think are like, small fixes etc. for things like landtable textures
23:23
I'll put this on the repo if you don't mind
Avatar
sure
23:30
I know the file for sky deck is missing the pointer replacement for sonic's model, it's why he's invisible on the cylinders
23:31
I didn't add that one to the sheet until trampolines in WV started killing the game
Avatar
Avatar
Speeps
I know the file for sky deck is missing the pointer replacement for sonic's model, it's why he's invisible on the cylinders
oh yeah, i forgot. you marked it as this when i asked: "change 8C180B0C -> 8C19B27C" but that stage hasn't been converted to the pattern ini type yet, which is why i didn't do it and forgot
Avatar
I tried it 20 minutes ago and had a crash when approaching the act 1 cannon for some reason
23:45
not sure what that was about
Avatar
Avatar
Speeps
okay no it does work while it's moving but it's still strange
he only blocks when he's active, so you can shoot him with X to hurt him and B to make him block
Avatar
i'll do more bgm restores for gutted chaos 7 and robo and e101r, my intent once that mod is finished is to merge it into the restored stage mod by taking the stage specific patches and putting them in each stage's mod ini if that is fine with everyone
Avatar
Avatar
Speeps
I don't have a clue what's happening with it either, I've tried running it without an Rd or Bg and it still crashed iirc
for chaos 0, i know you had that bootable at some point. was that just with manually inserting the file and rebuilding the gdi? i'll be testing today
8:27
for mod list ordering right now, music restores and debug restores need to be below restored stages. the no level timeout patch conflicts with debug restores and will nop an important camfix instruction, just disabling that is an option too.
Avatar
Avatar
woof
for chaos 0, i know you had that bootable at some point. was that just with manually inserting the file and rebuilding the gdi? i'll be testing today
it worked in flycast but not demul
Avatar
Avatar
Speeps
it worked in flycast but not demul
tested that, with minimal patches too. that just gets sh4 exception while blocked like mr_c causes which makes it hard to debug
10:14
implies that rn its crashing in both emulators for the same reason at the same time though
10:15
sorry if i'm bugging you, you're sure there were no 1st_read changes needed?
Avatar
What would need to be changed in 1st_read? I didn't bother with the textures
Avatar
don't know, just it seeming to crash before getting to the execute task jump would imply its during or after load but before running the stage code
Avatar
converted it to a pattern patch, verified each pointer it changes is correct according to the spreadsheet, still the same behaviour with this.
12:28
asked in flycast discord about getting the info about what caused sh4 exception while blocked, they cite no official debugger as the reason why we can't. submitted it as a feature request for the flycast debugger dev.
Avatar
the usual cause of this is a bad read/execution that for some reason is not properly handled so if we can get any register and stack info then we can debug this and mr_c. at least in the case of mr_c its because something writes a lot of bad data throughout ram. (edited)
Avatar
here's the manually patched 1st_read I was using at the time
Avatar
Here's Chaos 6, but it has the same issue as 0 (Won't boot even if Rd+Bg do nothing)
Avatar
supercoolsonic 28.07.2024 21:11
Are you able to load it up on Flycast?
Avatar
no, the debugger looks like it gets stuck in an infinite loop though
Avatar
supercoolsonic 28.07.2024 21:23
Hm
21:24
We'll need to dig into it and find out what causing that
21:24
And then fix/disable it
Avatar
pushed chaos 0 pattern conversion and chaos 6 current ver to mod repo for ease of testing for anyone else
Avatar
forgot to include the monkey cage fixes from last time, those are pushed too
Avatar
tried to see if i could get info out of flycast debugger by looking at the register memory in cheat engine, for chaos 6 the last frame before crash we were in maple code and then the next frame it was PR at 00000000 and the PC was A0000000 but i don't know if that was flycast clearing on exception quit or not (edited)
9:39
if it is correct, then the game tried to jump to a null ptr
9:39
hard to get better info rn
Avatar
and furthest i've gotten following chaos6 loading atm is this we never return from 8c043788, bsr to 8c0440da gameinit is the next jump if we did return in 8c0440da we never return from 8c04411e jsr to 8c079b12
Avatar
I replaced all of the download links in my vids with one to the DC mods repo, here's all the old links for archival purposes: Twinkle Park https://drive.google.com/file/d/1XgzDKvFNMLgrikfn8PFJCiteSmDlCxUj Lost World https://drive.google.com/file/d/1WCoWvdnyaEsqSC36JgQTWcdEhZqFxEFD Sky Deck https://drive.google.com/file/d/1d9i6WcAyT_8nw-l8kDfR3rVLPLsWYIke Windy Valley https://drive.google.com/file/d/1K5x4Th3BKIBohIYD64ur5N-MnZJSjBNa https://drive.google.com/file/d/1Q6hWuIc_rYZlC_jCGQrhisN-VswqKqY3 (SET0200S) Casinopolis https://drive.google.com/file/d/1JPGVRGnwZLsEpZi9hvu2PJ4_T4ExZriC Sky Chase https://drive.google.com/file/d/17kn8t1nEDSK_2mPdU8Fmuc5Ta2UMyvK5 Sand Hill https://drive.google.com/file/d/15nyVrM4XM2E1HT0lMhstspcv2FmKKmGh
Avatar
I put those files in the files folder on nextcloud
👍🏻 1
Avatar
I added the E3 Sand Hill file to the restored levels mods
imaDab 1
Avatar
Avatar
Speeps
no, the debugger looks like it gets stuck in an infinite loop though
chaos 6, a comparison at 8c604d54 is trying to get to 209h, it gets its value from 8c4ce230. this has crashed on me on the third loop sometimes, but i've gotten further by manually stepping. if i set that to something smaller i end up with an infinite loop instead of sh4 exception while blocked. this comparison occurs after these calls, after it handled grabbing the stage texlist pointer from the stage bin. if i give chaos 6 a null texlist pointer (at 8c190e08 in the list) it should branch to skip doing the texture loading, but this will cause it to draw a lot of garbage and then get stuck executing a bad instruction and going to exception handler lol.
15:34
so i gave it ice cap's texlist stuff pointer instead
👀 2
Avatar
nice
15:36
of course the solution to chaos 6 involves ice
Avatar
get a load of this chalkeggman
15:38
don't know why it would be dying on the texlist stuff though. maybe this works for chaos 0 too as a temp fix
15:43
it does
Avatar
Thank fuck
Avatar
chaos walked underground and left the map when i wanted to take a screenshot though
15:44
this is in demul too
Avatar
yeah he does that, I had a few guesses with him
15:46
I'm gonna add Twinkle Circuit, I know you already did that one a while ago but it's just 4 pointers anyway
imaWave 1
Avatar
i won't have time to fix chaos 0 and 6 proper rn but the pointers they take are stored at 8c190dfc and 8c190e08, setting them to ice cap pointer works and is 8C190978. i'd assume the data they point at by default is wrong because they're both pointing to data in the stage bins, but that didn't stop e101r
Avatar
yeah chaos 0 has texlist pointers to 1stread
16:01
e101r's doesn't
16:04
these are probably in chaos 2's list so they should be easy to fix, i'll get on it now
16:05
their filenames are still nuked but whatever
16:06
oh one of these is already in my list lol, it's texlist_chaos_effect
Avatar
yeah it works
16:57
he has the bubbles inside him in this version like 0, 2 and 4 do, final's doesn't
16:58
Avatar
you can use dpad to make chaos change actions
Avatar
thank
17:06
i've never seen him in puddle form before I don't think
👀 2
Avatar
and it crashes only if i go there as big
17:07
deactivating chaos in puddle form here will make it vanish until reactivated
Avatar
pushed them
Avatar
supercoolsonic 29.07.2024 17:34
Hell yeah two for the price of one
17:35
All that’s left is the egg mobiles, chaos 4, and whatever causes MR Jungle to crash, right?
17:35
Oh and that Practice vertex thingie
Avatar
mr jungle is so annoying and weird. press B to reset
Avatar
Avatar
woof
mr jungle is so annoying and weird. press B to reset
it doesn't crash if you remove the jungle landtable
19:05
makes sense considering it wouldn't load in SALVL so we didn't get to even see what it looked like until 2018 2020 lol (edited)
Avatar
ohhh.. i don't know how to fix that rn then
19:09
pressing B works fine?
19:10
i tried it with ninja lighting instead previously and got a different crash so idk if it's going to be the same sort of thing as practice2 or not
Avatar
yeah B works fine
19:13
8C170A70 is the address containing the pointer to the landtable, 0C9b2780
19:14
I tried moving it to another act and got the crash there too
Avatar
the crashing when sonic approaches the other side of the jungle is caused by a landtable object (0xCA350C0) with a null model pointer (at 0xCA350C4) (edited)
Avatar
I don't know why his spindash causes crashing, the trees'll flash weirdly in if I spindash in this spot so it's another bad pointer somewhere
21:09
or some buffer got broken idk but it won't crash unless he spindashes afaik
Avatar
It doesn't happen if I lower the landtable model count but I don't know how reliable that is
Avatar
supercoolsonic 29.07.2024 21:37
Pausing and attempting to return to the level select in MR Chao Garden freezes the game
21:37
Also, interesting tidbits about the landtable
Avatar
Avatar
Speeps
I don't know why his spindash causes crashing, the trees'll flash weirdly in if I spindash in this spot so it's another bad pointer somewhere
sounds very much like the vertex buffer clogged to death
Avatar
Maybe this is why they cut out the extra paths lol
Avatar
supercoolsonic 30.07.2024 1:25
Probably
1:25
lol
Avatar
I dunno about the jungle but in the Angel Island area it's very very close to overflowing in the final. Like if you increase draw distance just a tiny bit it chokes
Avatar
supercoolsonic 30.07.2024 1:30
Are there any other levels/areas in the final that are like that?
Avatar
maybe, I don't remember
Avatar
somehow Perfect Chaos stopped working... I also couldn't get Chaos 0 to boot in either emulator
1:38
MR C doesn't boot either, hm
1:38
oh wtf I had all submods disabled except Chaos 6
Avatar
supercoolsonic 30.07.2024 1:38
Oop (edited)
Avatar
yeeeah I found a bug in the image builder
1:39
the reset button doesn't work properly. Maybe it has something to do with new submods being added
1:41
lmao what the fuck, it does play those test tones in Chaos 0 after all lmao
Avatar
wouldn't reducing draw distance mitigate vertex buffer issues for mr_c then? i don't know where it is set but surely not impossible. chaos 0 makes the call to PlayBGM but doesn't set up BGMTask seemingly. it counts down 11 frames then calls it, sending the value @ 8c833910 as adx id (0a). by the time of AD this would be final egg act 1 adx though
2:14
could be remnant of it having had an event implemented at some point before its compile here, there's already one of the chaos event adx files in the game (07)
Avatar
yeah it may work. There are multiple draw distance settings for different things, for LandTable the struct itself has a clip distance value
2:16
but sometimes it's set to 0 and handled in code
2:16
...which also happens to be like that in MR C
imaNoUse 1
2:17
but you could probably toggle the flag and still use it
Avatar
bgm restored for chaos 0 6 and 7 and pushed to git. please redownload the AFS files though, i had to add chaos_p1 to BG2
4:13
the super sonic event music was on the disc but it doesn't loop
Avatar
I guess we need mod update support lol
Avatar
that null model pointer landtable object would have been positioned at the bottom of where the waterfall is. i gave it the pointer the object above it in the landtable was using just to see
14:36
doesn't seem to be an equivalent in final at this position so i don't mind just removing it from the landtable to fix the crash it causes though it would have been nice to see what it was meant to be
14:39
all other models in the landtable are referenced so unless it was a duplicate of another it does not exist there
14:52
he's nearly there, but getting given bad values from somewhere, I had to skip over chaos4display because njRotate is being given NaN
14:54
are you planning to find where it gets nan from and fix that
Avatar
Avatar
PkR
but you could probably toggle the flag and still use it
where do i even begin with doing that
Avatar
it's somewhere in BossChaos4 I think, I'm taking a look
Avatar
Avatar
woof
where do i even begin with doing that
the landtable struct
15:05
short at struct address + 0x4 is landtable flags, 0x4 is the "use draw distance" flag
15:06
the distance value is a float at struct address + 0x8
Avatar
got it, thanks. it does prevent spindash from resetting the game, just hope there's a good looking value for it lol. working my way up from extremely short distance for now
Avatar
maybe we could do that with Practice 2 as well, instead of reducing the poly count in some models... idk though
Avatar
i'd prefer it for being as close as we can to what the build contains, poly count in the practice stages would interfere with the vertex colour pattern layouts they use depending how its done
Avatar
nah, it would just make some parts of the model disappear. If draw distance helps it, this would be a much better approach
Avatar
oh i misunderstood, you don't mean reducing the poly count of the models just the amount that it would draw at most?
15:29
but yeah draw distance at least worth a try if it doesn't just look ugly
15:32
do you know what the default draw distance is if its handled by the code rather than specified in landtable?
Avatar
didn't look at it in the autodemo
Avatar
do you know it for final
Avatar
I don't remember the value but it's at 81ac4 in 1ST_READ this is default clip distance for models (edited)
15:33
oh wait, there it is
15:33
original value is 1600 and it's at 81ad0 in final (edited)
15:35
doesn't work for practice 2 it seems
15:35
makes sense, there's only like 4 models and they're huge
Avatar
final default distance looks pretty bad here lol
15:40
does update while in the stage if you change it which is nice though
Avatar
to fix Practice 2, it should be possible to split the problematic model into two parts, and set them up as separate models and COL entries
Avatar
i have mr_c stable and not too ugly so far with clip distance 2200
15:47
2300 was unstable, don't think i want to fine tune this much more
Avatar
Avatar
woof
final default distance looks pretty bad here lol
clip 2 ported to the autodemo, nice
Avatar
i don't know what that is lol
Avatar
Avatar
woof
final default distance looks pretty bad here lol
also maybe that cliff being cut off depending on clip distance is why final has the camera pointing down on entry until you move further forward
Avatar
Avatar
woof
i don't know what that is lol
low quality settings in DX PC
Avatar
oh god
15:58
don't worry its fixed and i'll never bring it back
Avatar
pushed MR_C fixes, if anyone can still crash or reset MR_C with spindash or anything else then the clip distance needs further tweaking. i have it at 2190, and the null model pointer set to the debug plane model.
16:12
i wonder if its the addition of backface culling that makes practice 2 work in ninja lighting
16:14
mr_c takes a performance hit with it, and the clip distance i set seems more severe (it does do the distance fade thing though)
16:18
but crashes seem eliminated in mr_c finally in both light systems so thanks for the help (edited)
16:25
MR garden with ninja lights which i forgot to show off before
Avatar
aside from the drawing issues the boss himself works fine
Avatar
I managed to find a function that doesn't make the water explode
👀 1
Avatar
supercoolsonic 30.07.2024 17:59
Ooh
Avatar
display crash looks like it's caused by action yet again
Avatar
big in chaos 6, sends to exception handler, rte takes us to 8c000000 lol... a jump to r14 @ 8c0791ea sent us to 00030003. i'll look into it after i eat (edited)
Avatar
Pushed what's there for Chaos 4
18:44
it's possible to beat him but it's insufferable because you get hurt if you fall into the water and the camera keeps locking up lol
18:44
thankfully despite the drawaction issue his bubbles show where he is, and he's visible above water anyway
Avatar
so you have to stand on a lilly pad or instant hurt?
Avatar
yeah
18:45
also sonic doesn't have a spawn point so he spawns below the map
Avatar
no jelly water and a reason to use the pads sounds fun honestly
Avatar
the arena has a different model too
18:49
I can't tell if it's sized differently but the bottom of the pool isn't like that in final
Avatar
they optimised down the poly count for it and reduced it to one object and model instead of two
Avatar
neat
Avatar
the water doesn't change like final based on your screenshots
Avatar
chaos 6 big is trying to execute an invalid task
19:35
i will try to find why but that's where it jumps to a bad pointer
Avatar
i have functioning code for setting up bgm in chaos 4, but it seems there is no audio there at all as is so it doesn't work even though it does work.. for now..
Avatar
pushed, bgm support for E101r and ERobo. Chaos 4 would work if the stage having no audio at all gets figured out, but the code shouldn't be causing any issues.
12:20
i could do eggmobile 1 and 3 before they are fixed up but i want to debug those. i will have to do it next thursday onwards
12:22
think that mod is done once i have EG1 and 3 in
Avatar
Avatar
supercoolsonic
Pausing and attempting to return to the level select in MR Chao Garden freezes the game
mr garden crashing on exit can be fixed by changing its pointer for al_main 0c9001c0 to 0c905400, but i don't know if that is correct. it seems to prevent the chao from attempting to spawn, they no longer make noise from the void. (edited)
Avatar
supercoolsonic 31.07.2024 13:25
Hmm
Avatar
so far none of these bosses boot on hardware except chaos 0, which lets me get a few frames in until just after the spindash sound (edited)
Avatar
though it seems like a bit of a regression somewhere, because i can't get more than like two frames into sky deck 1 now but i was able to get to the pillar the last time i tested on hardware
18:38
which i now have to analyse mods for because i couldn't even boot something like highway 1
Avatar
pestering flycast devs about flycast not crashing where demul and hardware do for stuff i was doing in rez protos but it's likely also affecting what we are doing here too
Avatar
I wonder what the hell it's ignoring in Lost World 3
Avatar
supercoolsonic 02.08.2024 18:55
Hmm
Avatar
passed along to debugger dev on the off chance there's a way to handle it so we can debug any of the ignored exceptions
Avatar
tbh it would make sense to have it when the debugger is enabled
2:09
otherwise it kinda defeats the purpose of having a debugger lol
Avatar
The Autodemo's PL/SL file loading has a bug. When you pick a level from level select, for many levels it loads lighting files for Act 0 even though files for Act 1 and later are available. The lighting for later acts loads correctly if you delete the file for Act 0.
4:07
we'll need to fix this to get the lighting to load properly in all acts
4:10
assuming this also affects SL files, this also has implications for the Ninja Lights, which are partially set up using the SL file
🤔 2
Avatar
does that mean it doesn't load speed highway 2's lighting?
12:16
P+SL_40B (left) and P+SL_41B (right)
12:47
Avatar
yeah so that answers why some levels' lighting is just weird
Avatar
yeah this final egg 2 lighting is more what you'd expect
👀 2
Avatar
it's more like the press release version now, though it's a bit brighter in that
👀 1
Avatar
supercoolsonic 03.08.2024 14:07
So they broke it at some point?
14:07
The lighting loading function, I mean
Avatar
transitions are bad in general in this version
Avatar
supercoolsonic 03.08.2024 14:07
I see
Avatar
station square gets no lighting and fog when it automatically goes there after beating sand hill
Avatar
some of pl file name generation was here in 1st read if anyone wants to take a further look https://discord.com/channels/446023672147345418/1248608194436141178/1255911321891897366
Avatar
it's probably looping the Act ID in the wrong order
16:37
counts forward from 0 to act ID while it should be counting backwards from act ID to 0
Avatar
unrelated but I never noticed the JP mission cards have different dates Sonic: 2 October Tails/Knuckles: 15 August Amy/E102: 28 September Big: 8 October
Avatar
I'm going to start working on an update for the TCRF article, though I'll probably get those two eggman levels out of the way this weekend too
Avatar
does icecap 2 not play it's bgm btw
17:44
i remember the tcrf article mentioning that, i'd need to include it in music restores if so
Avatar
yeah it plays act 3's
Avatar
and the notes on the level select discussing the levels that are missing needs correcting, some stages that aren't listed do have strings and can be added to the level list
Avatar
Avatar
Speeps
yeah it plays act 3's
oh.. it's correct music is on the disc though. i can sort it later
Avatar
we should figure out why the object that has the tunnel for the icecap 1->2 transition has no collision sometime
Avatar
supercoolsonic 03.08.2024 20:01
Hate that tunnel. It also has that collision issue if that SET layout is brought over to DX.
Avatar
that's weird, there's no difference in the set entry for it
Avatar
once i have the remaining stages covered by music restores i will likely be cutting down the afs files to remove songs i included that won't end up used so at that point i will modify the adx ids each hijack uses and it will require downloading a new version of the bank. i'll mention when that is the case, it'll free up a little bit of space within the disc image.
Avatar
SCLX affects this thing's base in edit mode but it doesn't do anything afaik
rubberduck 3
Avatar
It moves in a roughly oval-shaped way that's way too large for the area it's placed in but the Amy doors area is big enough.
22:09
It'll do that until it faces the player (regardless of any walls) then vomits chicks and runs away
Avatar
supercoolsonic 07.08.2024 22:23
It seems to be able to see the player from quite far away. I’ve never seen it walk in circles before
22:24
Also is there a reason the collision for the tiny chicks sucks? I know they almost always fall through the floor
Avatar
it searches as soon as it spawns, the chicks only explode if the player is nearby
Avatar
lol if there's a cart spawned you can press D-Pad left to add 9 rings
Avatar
oh yeah that was getting me when testing entering/exiting the carts. suddenly i realised the ring graphic on the back was broken and i had many rings and it was that
Avatar
been working on that tcrf update in notepad, cmn kusa is a homing attack target in this version lol
Avatar
rhythm badge upgrade exists
Avatar
like as an object to collect or just the model for tails
19:01
still haven't gone looking for if the game has toggles to enable or disable those, since light speed dash has actions in the game and some stages are designed for it
Avatar
Avatar
woof
like as an object to collect or just the model for tails
the behaviour when his pwp->equipment has 0x10
Avatar
I haven't found any flags for initializing equipment though, the final game does it in PInitialize but there's nothing in there here
19:38
(PInitialize is 8C05BF20)
19:41
is seqvars even in this version
Avatar
adventure field flag init and debug seems gutted, saving/loading only seems to have some code from the lighting debug so far
20:17
i've seen remnants of miniboss debug, nothing relating to sequences yet
Avatar
oh I guess he can pick up stuff, ignore murder in the background
Avatar
it's very hard with Chao, his pickup range is really tiny
20:38
way easier with Practice's thing, he has an issue where he sometimes fails to pick it up properly and gets glitched out
20:42
his grab on O SAMPLE M loops and it looks kind of hilarious
20:45
Avatar
this might be the reason why gamma doesn't go into this pose while standing in the final
Avatar
this happens if gamma brakes in drive mode while holding something
🏎️ 1
Avatar
Avatar
Speeps
this might be the reason why gamma doesn't go into this pose while standing in the final
Sliding on an inclined surface forces him into that pose for some reason.
Avatar
weird
Avatar
The star jump panel still shows up when the editor flag is on in final right? I looked at it in DX Preview and PC but it's just a blank jump panel, I don't know the address for the flag on DC
Avatar
Yeah. 0x8C1B1840 on Japanese version.
👍🏻 1
Avatar
Avatar
MainJP
Yeah. 0x8C1B1840 on Japanese version.
i was gonna be overkill to test lol but no need now, setedit strings and code exists in this version too but seems not in us 1.005
Avatar
checked the 360 idb and yeah they did change it to a regular panel in DX lol, what a weird change
17:37
hahahaha he has no destruction animation, he stays stuck down there while Sonic gives a thumbs up
Avatar
supercoolsonic 10.08.2024 17:41
lol
17:43
Can he do everything in the final?
Avatar
yeah
17:44
he's nearly there
Avatar
supercoolsonic 10.08.2024 17:44
No sounds, I assume
17:44
Or, rather, not programmed to play any?
Avatar
no sounds
17:45
no eggman yelling lines
Avatar
supercoolsonic 10.08.2024 17:45
Dang
Avatar
suddenly its music restores day (:
Avatar
pushed, I'll do the other one once I'm back from the shop
Avatar
bgm for hornet is done, i'll wait on the next before i push
Avatar
i can sort ice cap 2 bgm i think but its annoying. many switch cases defined but not many seem used, and big's version of the stage uses the switch case from act 1.
19:48
i think (from when i messed up with twinkle park) just sending the adx id to play should cause the game to change song when needed for act changes, and it shouldn't impact performance in a way that matters to do it every frame.. (edited)
21:24
the platforms have no collision because RegisterCollisionEntry is missing
21:26
it deletes the collision it doesn't create when it's done though lol
Avatar
do we know enough about how calling that works to patch for it
Avatar
Exant used it to fix the WV2 platforms iirc
21:30
Rd_BossEgm3 is messier than final because it copypastes for creating the platforms instead of looping
21:33
Pushed
Avatar
i made another complicated to maintain bgm patch and ice cap has correct act 2+4 music and handles act changes for it and does not create bgm task or send adx id every frame now... (edited)
21:34
just in time too
Avatar
I think that's it lol, all the stages are bootable
Avatar
supercoolsonic 10.08.2024 21:36
chaohappy
Avatar
tfw fixed all the broken levels before Knuckles' Speed Highway 3 layout
Avatar
supercoolsonic 10.08.2024 21:37
OH
21:37
Right I was gonna ask
21:37
How are the textures for the cars handled in this build?
Avatar
they haven't been touched atm
Avatar
supercoolsonic 10.08.2024 21:39
I mean, are they looking for a PRS file, or individual PVRs?
Avatar
uses ___njSetTexture so they probably had it in a PRS
Avatar
if there would be a good cam type for viper to use i could force it as part of the bgm patch
Avatar
bgm is working
Avatar
Avatar
Speeps
Click to see attachment 🖼️
with pvrs as include
22:04
22:06
well there's the blue van
22:08
the yellow ones are a bit different too
22:08
Avatar
Avatar
Speeps
the yellow ones are a bit different too
it looks like they had different tyres
22:11
22:13
Avatar
oh wow a black one
Avatar
supercoolsonic 10.08.2024 22:26
Fuck I did the textures wrong
22:26
I have them swapping colors every time you load the stage. That's what I thought they were doing
22:26
Sigh...
22:26
oh well
Avatar
https://info.sonicretro.org/images/7/7b/SA_SS6.jpg tbf this picture has a blue one that doesn't seem to be here
Avatar
supercoolsonic 10.08.2024 22:27
I remember IEA and I finding texlists near the cars in the data
Avatar
I know they removed a bunch of the cars though so maybe that's why
Avatar
watch out..
22:30
music restores update pushed, handles hornet, viper, ice cap
Avatar
I'll do one with the car textures
Avatar
done
imaWave 3
Avatar
Avatar
Speeps
Click to see attachment 🖼️
Chaos 0 has wheel_a
2:41
that helps with a few of the cars but there's still tyre_side missing
🤔 2
3:07
just missing the bubbles
Avatar
supercoolsonic 11.08.2024 3:08
Eyy
Avatar
4 has everything except for the platforms, the Egg Carrier bosses are going to need a little more work because pvrs break the texture buffer with them
🤔 1
3:17
4's waterfall is apparently the same as the jungle's too
Avatar
Oohh btw
4:51
Do you know what it does to draw those lights on the ground in Chaos 0? The cars’
4:52
I somehow never found the exact code for it, it was gutted in SADX. I think it’s a sprite though
4:53
Also, very nice restorations so far, I’m away atm but I’ll be happy to assist with new features in the image builder, textures etc
4:54
The code for bubbles in Chaos 6 is also worth reversing, would be nice to have it back in DX
4:56
I don’t have my big texture archive on me right now, but I remember that one of the earlier Katana SDKs had a PVM with SA1 textures, and there were tyres in there too iirc. Long shot but worth checking
Avatar
supercoolsonic 11.08.2024 5:00
I want Chaos 6 bubbles too
Avatar
Avatar
Speeps
4's waterfall is apparently the same as the jungle's too
is this the case for MR_A also?
Avatar
Avatar
woof
is this the case for MR_A also?
imaUwu 1
Avatar
nice, thanks
Avatar
Avatar
PkR
I somehow never found the exact code for it, it was gutted in SADX. I think it’s a sprite though
yeah it's probably a sprite, I haven't checked though.
Avatar
Avatar
Speeps
it deletes the collision it doesn't create when it's done though lol
i'm willing to attempt a patch for this, but i have analysis to do because i've never tried calling registercollisionentries. looking at the patch from WV. this and other ones i've looked at seem to just pass 08000000 in r4 and then call.. though there's additional register work going on here. @Exant sorry to ping, was told you did this for windy valley, do you have any useful info about doing this? i'll continue analysing either way
14:10
rn i am assuming i would need to patch each instance of creating the platform to go somewhere and do this, unless it can be done within the code for the object itself
Avatar
uhh you mean like how i wrote the patch? (edited)
14:11
or about the collision flag thing itself
Avatar
what do i need to provide to RegisterCollisionEntry when i call? that 08000000 is a flag?
14:11
i figured out that it needs a flag just based on a hunch, it felt like the collision didnt update every frame but only like every second or something and thats the update every frame flag from retail sa1dc
14:12
im guessing this was the default for these stages
14:12
until it became too problematic for performance so they made the default not updating every frame (edited)
14:12
and these stages never got fixed
Avatar
are those flags documented on the modding wiki
14:13
but probably just using this one is fine
14:14
do you remember what the other register work going on here was for also, or is that just remnant of the original code around what you patched
14:14
sorry for questions and ty for help so far
Avatar
Avatar
woof
are those flags documented on the modding wiki
uhhh iirc i found them in decomp
Avatar
Avatar
woof
do you remember what the other register work going on here was for also, or is that just remnant of the original code around what you patched
i dont really remember
14:18
OH
14:18
i remember now
14:18
i was trying some other experiment too
14:19
i had two theories, this flag thing, and that the collision object has the wrong evalflags
14:19
so on the first iteration of the fix i applied both
14:19
as we know now it was the flag that was the problem, and i guess somehow code got leftover
14:20
i think thats what that "and 0x2" thing is trying to be, its removing flag 0x2
14:20
and i cant check rn but i have a feeling 0x2 is gonna be IGNORE_POS evalflag lol
Avatar
but this was because that was a moving platform right
14:21
i'll probably just do the minimal send flag on call to registercollision
Avatar
oh i dont know the context
Avatar
Avatar
woof
but this was because that was a moving platform right
but yeah
Avatar
the floating platforms in egg viper don't register collision when created
14:25
if the rest of your patch is not needed it can be optimised to pass flag to r4 on the jump to patch but i'm leaving that for now
Avatar
do we have any idea why they moved viper cutscene area from final egg 4/6 into b_egm3.. just a loading time thing for the transition from cutscene to fight seemingly? it does seem to have been in final 6 at some point due to the start position for that being right at the bottom of the hole in the wall entrance to the room in final 4, but the final 6 level slot crashes in AD. final 4 and 5 have their own start positions at weird places on all existing FE maps, some of those were at positions that in final 3 didn't seem entirely illogical though.
14:35
or i guess on that, could be a way to just test the event before actually integrating with the boss they were also working on
Avatar
iirc the Egg Viper in that cutscene is the actual boss and not an event actor
Avatar
that's interesting, did they handle the other bosses with cutscenes that way?
Avatar
they used event actors
15:32
I think the chaoses except for 4 use both
15:33
Oh 6 is just the boss too iirc
15:35
in 0's cutscene he swaps from the event actor to the boss after the police shoot him, you can tell because his animation slows down and the bubbles show up
Avatar
so far i can call registercollisionentry on the object init and i set up r4 with the col flag, r5 with a pointer to a list of pointers, and r6 with a pointer from r13 which from analysis seems correct but that doesn't make the platforms solid. i don't think transplanting code from the working version from final egg would be very fun to try, but it looks like it also wants to set up GetMobileLandObject in that version
19:43
idk. something about it i am not getting rn
Avatar
found that SDK PVM
612.69 KB
12:05
also some car shit in this one
917.65 KB
Avatar
Nice, will look when I get home
Avatar
data3 has speed highway stuff in it but no wheels, the other one has wheels but nothing in there looks like sa1 stuff
Avatar
Avatar
Speeps
data3 has speed highway stuff in it but no wheels, the other one has wheels but nothing in there looks like sa1 stuff
data3 is an early version of OBJ_HIGHWAY
16:51
one of the signs is different in it (the one with the border is data3, the other is AD/Final)
Avatar
between data3 and AD: ama_hw003 (Alpha) antlgt (Corrupted) en01 (Corrupted) en02 (Corrupted) en04 (Corrupted) gatetx06 (Corrupted) plant03 (Corrupted) plant05 (Higher res in data3) ref_black (Edited) ref_white (Edited) ref_yellow (Edited) sign2 (Edited) st_c17 (Edited) st_c18 (Edited) st_c19 (Alpha) st_c20 (Alpha) st_E3 (Flipped vertically) st_green03 (Edited) st_green11 (Edited) st_green12 (Corrupted) tokei3 (Corrupted) tokei7 (Corrupted) yajirusi03 (Edited/Rotated)
👀 1
Avatar
supercoolsonic 12.08.2024 18:01
👀
Avatar
to make sure i have this right, when calling registercollisionentries i should just need to pass the attribute (r4), task pointer (r5) and object pointer (r6)? i don't fully understand how it will know the pos/ang of the object its registering this for cause that seems to be set up in the draw code which would be after this in the working ukishima from final egg. i can already call it without breaking the game and should be able to supply the data it needs i'm just having to figure out how to properly derive the pointers it wants..
17:22
but it seems like everything i need would be getting stored as pointers in the task heap anyway
Avatar
I think everyone who's opened DEMO_TITLE OR TITLE knows about this but I've never seen it get talked about
10:44
weird alpha leftovers that make it look like this in external editors, the TGS one is the lower one (left) and regular AD the right
Avatar
uhhh exporting in texture editor makes all those pixels black, they have to be saved as PVR and decoded in Puyotools (edited)
Avatar
Final OBJ_WINDY has a few interesting things hidden in here, like this grass texture hidden in m64_wv1_008
11:37
and the rest of whatever stock image they used for the tumbleweed being behind m64_wv1_013
Avatar
Avatar
Speeps
I think everyone who's opened DEMO_TITLE OR TITLE knows about this but I've never seen it get talked about
logo from the reveal footage (left) would match up with tgs and autodemo ones, this alpha looks slightly different. we don't have any earlier version of the logo than this alpha do we? i looked at the autodemo opening video one too (right image, video file name might suggest a render date around june/july iirc) and it wouldn't fit that alpha either.
Avatar
Avatar
woof
logo from the reveal footage (left) would match up with tgs and autodemo ones, this alpha looks slightly different. we don't have any earlier version of the logo than this alpha do we? i looked at the autodemo opening video one too (right image, video file name might suggest a render date around june/july iirc) and it wouldn't fit that alpha either.
nothing in-game, Retro has a bunch of stuff but I don't know how old any of that is https://info.sonicretro.org/Sonic_Adventure/Artwork#Logos
Avatar
Behold as Chaos 2's background hides... the rest of Speed Highway's background!
12:07
in worse quality lol
smolsonk 3
Avatar
so far in the TCRF update I've got the main page and the minigames done (though I still might revise them later), working on Sky Deck now.
Avatar
Avatar
Speeps
Final OBJ_WINDY has a few interesting things hidden in here, like this grass texture hidden in m64_wv1_008
this might be an early WV texture because it's not in the final game anywhere afaik
20:29
It doesn't look like it'd be stock anyway
Avatar
I'm not looking forward to the amount of images these articles are going to need uploading lol (edited)
Avatar
Avatar
Speeps
Click to see attachment 🖼️
Avatar
Avatar
Speeps
I'm not looking forward to the amount of images these articles are going to need uploading lol (edited)
do you want to include more. there's gaps in the geometry of sd_office on the floor of the chaos 0 area between the road and the grass by the brick walls. you can fall through it. its not the case on the chaos 0 map.
Avatar
Lol sure
Avatar
Sonic enters the backrooms (1998)
Avatar
what if sonic found out where the big drip was going
Avatar
He doesn't know nothing now
Avatar
chaos 0 making that test tone when walking is strange, it takes id B6 for it, which should correlate to chaos 0 mlt bank 1 sound 10 as far as i can tell. which is the correct sound when extracted. lowering the id makes the other noises from that bank in the game properly... don't fully understand why id B6 would correlate to that though.
8:42
it didn't like when i tried to be more direct about the id either. its fine until the id for that sound, but when trying a more direct id it just played other unrelated sounds lol
8:44
do we know more about how the game determines the sound from the id for an mlt.. its not quite the same as what i learned working with mlt and mpb for rez
Avatar
the stages with mlt files missing should be able to be patched to load them again, there's enough entries in the switch case for it for all of them. pointless if the stage doesn't try to make use of it, but if there's enough space nearby it wouldn't be too annoying until you have to find space for the mlt name strings
9:38
missing ones get sent to the default case which just loads red mountain's as is
Avatar
Avatar
woof
do we know more about how the game determines the sound from the id for an mlt.. its not quite the same as what i learned working with mlt and mpb for rez
If it's anything like SADX (which it very likely is), there's a huge array of structs mapping the sound IDs to program IDs in the bank for each stage. The same sound ID can be mapped to different program IDs in different stages. There should be a function that converts the game sound ID to bank+program ID.
Avatar
Avatar
woof
the stages with mlt files missing should be able to be patched to load them again, there's enough entries in the switch case for it for all of them. pointless if the stage doesn't try to make use of it, but if there's enough space nearby it wouldn't be too annoying until you have to find space for the mlt name strings
Yeah, I'm 99% sure Windy Valley actually has all the sound stuff and we just need to figure out how to make it load the MLT file
👀 2
Avatar
Avatar
PkR
Yeah, I'm 99% sure Windy Valley actually has all the sound stuff and we just need to figure out how to make it load the MLT file
well i gave the windy valley mlt switch case a place to jump to that passes an mlt filename on its way into the loading code for it and the stage has the same sort of sound effects it was already using from the red mountain banks. nothing else there seems to be making sound effects still, springs and trampolines are silent. it does play the final version life jingle getting 100 rings, i'm certain its not falling back to loading another mlt as error handling. if its the case that the stage does try to play sound ids that don't line up then that needs identifying and patching, otherwise its going to be making the objects call the function to play sounds at the right times.
knuxsad 2
3:18
i also gotta,, fix music restores. i didn't account for act changes in windy valley properly lol.. i have the solution for that from twinkle park and ice cap but it requires repositioning my patches for space and implementing counters and initing them properly.
Avatar
Avatar
woof
well i gave the windy valley mlt switch case a place to jump to that passes an mlt filename on its way into the loading code for it and the stage has the same sort of sound effects it was already using from the red mountain banks. nothing else there seems to be making sound effects still, springs and trampolines are silent. it does play the final version life jingle getting 100 rings, i'm certain its not falling back to loading another mlt as error handling. if its the case that the stage does try to play sound ids that don't line up then that needs identifying and patching, otherwise its going to be making the objects call the function to play sounds at the right times.
Did you put in the final’s mlt file
Avatar
Avatar
PkR
Did you put in the final’s mlt file
yes
Avatar
it does sound like it's still falling back to something
5:43
or it might be loading only the P_ and V_ banks
5:43
though I'm not sure if those have common sounds like ring loss
5:44
try replacing DRYMOUNTAIN and TARGET with WINDYVALLEY
Avatar
it did play the 1up jingle from the final version mlt with the method i tried so far though, in autodemo that is normally the version from the megadrive games but in final it was redone
Avatar
hm... that sounds like it might be loading some banks from the MLT but not others
Avatar
tbh I've never looked at Autodemo MLTs in detail, maybe they have a different layout
Avatar
also does anyone else know why BWV has this. i'm getting sent to error handler on going to setedit in act 2, only in flycast, because of this. patching the padding nops to be actual nops makes it run again
6:39
in unpatched it was for raft when in setedit
6:42
i'm going to fix it to properly nop in the stg02 mod ini, just seems to be patch typo, but i was away during the fixing of windy valley so i don't recall why this bit needed to be nopped
Avatar
there were a lot of differences between Speeps' notes and the actual patched BIN file, I had to transfer some of the changes to the BIN file to the patch to make the level boot. Maybe I missed something
Avatar
in fixing music restores for windy valley act changes i ended up running into the issue with the positioning of post-stage file ram locations. is it okay to reposition those a little further down again? this fixes a crash caused by music restores needing more space now. i've done it on my local copy of the stage's mod ini but i'd like to push it later if its alright. i have another music restores (probably?) bug to debug, textures on act change into act 2 seem to load the wrong ones, but only in demul. i might not fix this and just note it if it becomes too complicated to debug it. i fixed an act change crash caused by the lost world music restores code being in an unsafe location, too. (edited)
Avatar
you might need to align the bytes for the code to work properly, I forgot the exact requirements but it's pretty strict, that's why they have these padding nops all over the place
Avatar
i'm keeping alignment as best i can, ghidra warns me if i try to use unaligned data in my code too.. atm i don't think its that
7:32
like right now its not crashing demul or flycast or sending to error handler, who knows what flycast is ignoring in general, but that texture issue i can only replicate on an act change into act 2 and only in demul which reduces debugging options
Avatar
dunno, right now it doesn't even boot on actual hardware so... lol
7:34
I think Act 2 booted but it was veeeeery slow
Avatar
decompiling sonic adventure and its prototypes just for bootable bwv is a good goal lol
7:38
though i wonder how much changes like object limit and stuff are playing a part in that
Avatar
is there a latest gdi pack with all the latest changes so far 👀
20:04
ive been watching this thread every day lol so much cool stuff
Avatar
You can use the image builder with a normal autodemo disc now
20:13
Dreamcast game hacks for the DC Image Builder. Contribute to X-Hax/dreamcast-mods development by creating an account on GitHub.
20:16
all the areas are loadable now, there are still some bugs though
Avatar
sweet ill check it out
21:54
btw did the textures for the animals in EC get a patch? i noticed the other day i think normally they dont have their textures
21:54
i guess for some reason the texture file table in 1st_read doesnt reference them for that stage specifically
Avatar
I don't think so
Avatar
i'll release an updated music restores that fixes the windy valley act changes and lost world act changes when i decide if i'm okay with the ram repositioning i did or if i should just try to move my code. so far i basically just made the existing wv ram reposition move further down.. but i'm thinking about the results display and the miniboss debug code i saw that seemed to want input on controller 2. while thinking about those i came across this from when i was first testing results display
Avatar
sonic has been injured
Avatar
sonic has passed
Avatar
Breaking his fall with glass turned out to be a bad idea (edited)
Avatar
going down
Avatar
straight to hell
chalksonic 1
life 1
Avatar
music restores fix is up, Windy Valley handles changing bgm on act transitions, Lost World no longer crashes on act transition (bgm patch should be in a safe location now). Windy Valley had a typo in a chain of nops which is now fixed so SetEdit works in act 2 again, i adjusted the four ram repositions in WV to also account for the space for the BGM patch. i encountered one bug with the act transition into WV act 2 which is land textures don't load correct but only in Demul. it doesn't happen in Flycast, and i don't think i can debug this properly for now.
Avatar
testing WV cams, in one test if i avoided touching the cam at spawn then other stage cams would work sort of. it at least didn't stay in default cam. trying to narrow down causes, if the first camera is set to 00 (follow) instead of 29 (c_follow) and if i change the 07 (line) cams to 00, and then die to reset the stage, i get some cams actually triggering and i get act 3 using a different cam to the default one. changing the line cams may not be needed.
16:02
act 3 is still messy with this, but i liked it in some parts
16:02
i have ninja lighting on because entering and exiting camedit makes the camera collisions display when near
Avatar
I like that the lightning object is still there.
Avatar
The object is in the final too, even in SADX, but the effect is different. Is this with paletted lighting?
Avatar
supercoolsonic 28.08.2024 0:36
It's misplaced. It's meant to be placed at the origin of the map, but only for the combined version of the Egg Carrier exterior.
0:37
Place it at 0,0,0, and in the right map, and it'll look fine.
Avatar
Avatar
PkR
The object is in the final too, even in SADX, but the effect is different. Is this with paletted lighting?
I had Ninja Lights turned on.
Avatar
Sorry about the lack of updates to the image builder, I'm bad at async/await stuff and I've been trying to fix a hanging issue with build cancellation to no avail. When I get this fixed, I will release a new version that will replace gditools with Sappharad's updated GDIbuilder which can extract GDIs now.
Avatar
sappharad's tool can rebuild without extraction now which is fun.. is it much faster?
Avatar
I haven't tried but it should be, yeah. The builder lets you make manual changes to files though, so it will still use full extraction for a while
Avatar
ah ok, wasn't sure if you were making use of it for that or not
Avatar
I want to get rid of gditools because it's a compiled Python thing that takes up several MBs and triggers antiviruses
10:36
ideally I want the entire thing to be done in C# natively without command line tools... which may be possible eventually
Avatar
from the other day, extended footage (under palette lighting this time) from testing getting some of the windy valley cams to trigger alongside music restores properly handling its act transitions https://youtu.be/haq8QFZjgpY
Avatar
"it's still a stage designed for different physics parameters and engine tweaks"
20:16
i know we kinda take this as common sense but i always wondered if we have any specific proof, especially the physics parameter thing
20:17
iirc the argument back then was that that wavy section in act3 behaves really weird (edited)
20:17
im just curious if anything was found lately that also supports this
Avatar
a bunch of those blue springs in act 3 don't launch you in the right direction
Avatar
supercoolsonic 30.08.2024 20:29
Considering the stage existed as far back as Dec '97, I wouldn't be surprised if the physics back then were different. (edited)
20:29
Other stages in this build have a spring or two that don't launch you right, as well.
Avatar
There is also this wavy hill section in Practice 2 that seems to be used to test rolling physics. And they would have needed a feature to keep Sonic curled into a ball when landing in these half-pipes.
Avatar
oh shit yeah
21:41
thats awesome
Avatar
Avatar
supercoolsonic
Considering the stage existed as far back as Dec '97, I wouldn't be surprised if the physics back then were different. (edited)
and yeah that makes sense too
Avatar
Avatar
Exant
i know we kinda take this as common sense but i always wondered if we have any specific proof, especially the physics parameter thing
the leaf paths are broken too, they move you too fast and you get stuck on them until you stop moving to fall from them
Avatar
ItsEasyActually 30.08.2024 22:08
that's only an issue in act 3, act 1's should be fine. act 3's are actually like that because they are very very low poly and the rotations for them are all messed up
Avatar
that sounds fixable.. but i wonder why the rotations are messed up to begin with
Avatar
Avatar
MainJP
There is also this wavy hill section in Practice 2 that seems to be used to test rolling physics. And they would have needed a feature to keep Sonic curled into a ball when landing in these half-pipes.
did we ever try this stage with the pinball movement for sonic
Avatar
the pinball movement is fun in casinopolis 2's tunnels lol
Avatar
Avatar
woof
did we ever try this stage with the pinball movement for sonic
Practice 2 probably wanted pinball movement on these rails and this tunnel slide.
Avatar
It's a little wonky.
imaWave 1
Avatar
supercoolsonic 31.08.2024 16:03
Oh hey you got the stage up and loading
Avatar
It runs fine with ninja lighting.
Avatar
it runs fine with regular lighting too if you cut a couple of models lol
16:05
might be possible to fix by chopping them up and rendering as separate models
Avatar
may be useful
Avatar
fixing the scenechangers in egg carrier is easy, but using them isn't running the init code i replaced to run bgm and enable controls. i'll figure that out at some point
21:42
they are set to send you to stage 1C, which sends to station square. they want 1D. idk why station square is in slot 1C, it is also in slot 1B. it is used in slot 1A from level select.
21:47
slot 1B and 1C were marked as No Entry from level select, also
Avatar
for interior, scene changers sending to 1F want 20 instead
Avatar
EC_FB and F are only loading the set file for EC_B
23:01
though i don't see any objects at the positions of EC_B ones in those maps
Avatar
it wants its set loaded to the 8cb70000 set buffer, i can force it through cheatengine for now until i go look for where it doesn't load it.. it has a scene change at the sky deck entrance but it is set up to go to EC_Hall
👀 2
Avatar
I wonder if that patrol helicopter thing has any leftover paths or anyhing
Avatar
supercoolsonic 05.09.2024 4:40
It apparently has a display routine, according to IEA, but no main code.
Avatar
ItsEasyActually 05.09.2024 10:44
given i've been wrong on a couple of fronts with my findings vs what woof and speeps have done, i'd say there's a chance i messed up looking at it
Avatar
Deep inside I still hope there's some unreferenced path data for it. Hell, even the Sky Chase dragon and lightning somehow made it all the way to final, and this thing thing has a model... there's gotta be something
11:11
on the other hand it might've been nuked because the rest of Egg Carrier code was nuked too or something
Avatar
is there a corrected set file for knuckles’ highway 3? i know long ago there was a pc mod that restored it
Avatar
supercoolsonic 08.09.2024 15:38
I don't know if the mod's SET layout is compatible with the AD, but I made this conversion list years ago to fix it.
15:38
15:39
iirc, the layout is broken because they removed an object from the list. The layout actually used that object, too.
🤔 1
Avatar
supercoolsonic 08.09.2024 15:51
Here's an incomplete restoration of the object list from when Knuckles's layout was made.
Avatar
Avatar
supercoolsonic
Here's an incomplete restoration of the object list from when Knuckles's layout was made.
i put the autodemo obj list for it into a text list if it helps (its in hex)
Avatar
supercoolsonic 08.09.2024 21:07
Ah, thanks
Avatar
and an attempt to line that restoration list up based on your incomplete one and the AD list. seems to imply desync with two objects added before o fount, and that one object missing later in the list
Avatar
whatever the unknown removed object was, it existed here for knuckles but the two there are actually four, they're duplicated with the same parameters
Avatar
supercoolsonic 08.09.2024 21:40
Yeah, it was there.
21:40
lol it was duplicated
Avatar
did anyone disassemble the stage file for unused code?
Avatar
supercoolsonic 08.09.2024 23:18
I don't think anyone's checked SH yet...
23:48
i went through the stage file with ida a few years ago apparently
23:48
C9044A0 doesnt look used looks like its referenced by a table at CA9EE98 (edited)
Avatar
supercoolsonic 08.09.2024 23:49
?
Avatar
at a glance from what i have in ghidra from itseasyactually's stuff, everything in that stage bin should be referenced to be ran. all objects in the object list have code, i think if anything there is unused its going to be through like branch checks and mode ids and stuff. i have an experiment trying to have all stage bins in ghidra alongside 1st_read but its still awkward about actually finding when a stage pointer should be set to be jumped to from within 1st_read, and marking the references manually is a bit of a pain (edited)
20:50
i'm not really sure how to narrow down which two objects were not in the pre-autodemo list before the fountain, and despite seeing where the removed object should be i'm at a loss for what it was meant to be. should be enough to correct the set file beyond that though..
Avatar
Since some objects in SetEdit draw strings off-screen, does that mean the whole thing was originally further up, kind of like this?
Avatar
supercoolsonic 09.09.2024 21:45
Most likely
Avatar
i was thinking so
21:51
probably changed because of hud stuff and optimising space if so, i didn't like the readability when i tried forcing it to render further up
Avatar
it was probably a copy of the planters here but as a single one, the only ones that exist are green (5 of them in a row) and greenE (3 of them in a row). i think it looks nice if i turn it into a curb... any opinions on what would be best?
22:19
i could remove it from the set, too
Avatar
supercoolsonic 09.09.2024 22:20
I'd say either a Ring or just remove them.
22:22
if i make them rings i'd still have to remove the duplicates or you'd get two rings from seemingly one
22:27
it is possible to complete the stage with the set modified like this, if people agree on removing the unknown object from the list i'll get on that and then upload it.
Avatar
Avatar
woof
probably changed because of hud stuff and optimising space if so, i didn't like the readability when i tried forcing it to render further up
That's why I turned the HUD off for the second screenshot. There's a TV shot of Windy Valley in the Tokyo International Forum booklet with a much shorter HUD that you can see on the top left of the screen, but in the pre-redesign Ice Cap footage they seem to have added the ring counter below the timer, and you can see how large those snum graphics used to be. I can see the build on that TV having the SetEditor rendered higher up and when they revised the HUD they realized SetEdit was blocking it.
👀 1
Avatar
Avatar
MainJP
That's why I turned the HUD off for the second screenshot. There's a TV shot of Windy Valley in the Tokyo International Forum booklet with a much shorter HUD that you can see on the top left of the screen, but in the pre-redesign Ice Cap footage they seem to have added the ring counter below the timer, and you can see how large those snum graphics used to be. I can see the build on that TV having the SetEditor rendered higher up and when they revised the HUD they realized SetEdit was blocking it.
that makes sense, wonder if the AD hud render code still has any leftovers..
Avatar
i have pushed corrected egg carrier scene changers and knuckles at dawn set data to the mods repo. i removed the unknown object from the set data.
12:50
egg carrier scene changers does not yet fix some acts there not loading their set data
12:51
i might be busy with life stuff soon so i don't know how much time i will have to update or work on more things until that is done, but please let me know if additional issues than mentioned come up
Avatar
Avatar
woof
Click to see attachment 🖼️
i just realized, doesnt the beginning of knuckles’ story start the same night as sonics? maybe that would explain the helicopters in knuckles’ version of at dawn since it would be the morning of the previous night for sonic in the same general area
Avatar
Avatar
ehw
i just realized, doesnt the beginning of knuckles’ story start the same night as sonics? maybe that would explain the helicopters in knuckles’ version of at dawn since it would be the morning of the previous night for sonic in the same general area
knuckles breaks in through the fenced off door in final too iirc, his story would start i think the morning after sonic battled chaos 0 roughly
Avatar
yeah it does, you can generally tell when something happens by what the NPCs say
Avatar
was there anything special about land1800.bin other than it being 3 days older than the version used for chaos 6 in AD
Avatar
I've been fitting in SS decomp over the TCRF rewrite lately, if anyone wants to work on it themselves let me know and I can send what I have
Avatar
i could look at some point but i'm still incredibly busy with life things for now
Avatar
Ghidra Script/Data for Dreamcast Reverse Engineering - gh-sh4/dc-re-ghidra
Avatar
did anyone ever get flyingheads ghidra plugin for flycast ram dumps working
21:04
i never could for the life of me
Avatar
is there a specific reason working with the ram dump would be more useful than getting 1st_read in and adding the other stage binaries into the project at correct locations. just so stuff like stack for computed calls is there?
7:53
i've never tried that plugin though
Avatar
what is it about stairs in this version of the game also... sonic always seems to struggle keeping momentum and just sort of clip bounces in place on some of them
Avatar
He has an accel function specifically for stairs in the final which I assume is missing in AD
Avatar
I took a look in SS's file the other night to see if it had any unreferenced code. Nah, entire file is built around loading the casino area in the evening.
15:18
I also want to check chao card in final jp sometime since dx's code for it jumps from mode 2 to 6
Avatar
Avatar
Speeps
I took a look in SS's file the other night to see if it had any unreferenced code. Nah, entire file is built around loading the casino area in the evening.
its init stuff was all just setting up the two events there or doing nothing special and then you're kicked first frame after its done for the no event playing check, which is also how they handled leaving after an event finishes in that version. they've been very strict on what got compiled in for each hub
16:59
adx leftovers imply other events existed already but we don't have them or their init code
Avatar
Avatar
Speeps
I took a look in SS's file the other night to see if it had any unreferenced code. Nah, entire file is built around loading the casino area in the evening.
sorry, additional thought. i'm wanting to go through the objects in each stage at some point to check for modes that don't get used, or stuff like the car knockback you found in final SS for its cars within the SH cars. did you look at the objects in AD SS when you were doing this? i know its pretty barebones in the amount of objects it has..
Avatar
It only has rd+bg+fake casino
Avatar
fake casino is just decorative and doesn't do anything special in final?
Avatar
Yeah, it's very basic compared to final casino
17:18
I'm on that file in dx decomp now
Avatar
i'll follow any updates if u find anything interesting with it there then
Avatar
how far did you get with tcrf rewrite? still busy but i want to cycle back to an saad task soon. could try help out, and i've at least had first hand experience assisting with things
0:30
i'll try look into getting the other egg carrier stages to actually load their set data soon. if it's like forcing loading an mlt, it shouldn't be too hard to patch their entries in the switch case table for it
Avatar
DMed
👍 1
Avatar
do we know what the adx value in the SPR Task debug display actually represents?
12:20
it being removed in final after they scrapped the afs adx system implies it's related but that's all i have
12:20
it does not correlate to adx id within the afs
Avatar
can you screenshot it? I might know
Avatar
give me a sec and then i will have some for you
12:42
i think its position on the current part of the adx buffer it is playing.. don't know why final would omit it then though
Avatar
yeah that was what I had in mind. It could've been the position of the file but since it resets it's more likely a buffer thing
13:03
well we can always decompile if we really want to confirm lol
Avatar
i guess it was only important when figuring out the buffer size to use and testing on burned GD roms
13:05
given it can go to thousands, but does not
13:07
when i learn C and can properly decompile i want to forward port as much of the debugging stuff from here and JP final as possible (:
13:08
good luck to whoever gets to analysing the way the game builds the level select menu lol.... sizing is a nightmare that breaks the formatting so easily
13:13
where the cursor can move is also defined separately to the sizing and building of the menu, limits on top to bottom and where going left or right will position it. some values that change how many entries one column can have will then break the next column. we got lucky in only having two more level slots to add to the list, more would have been terrible
13:14
i never managed to get each column to allow one extra entry each without it breaking due to how interlinked the whole thing is, and what worked for two columns was then entirely wrong for all three.
13:14
we know final did manage that, so i am interested to see how.
13:16
it also quickly demonstrated why they scrapped character icons for that level select and went with the text based selection instead.
13:20
if it becomes useful in decomp, extended level select for AD has each change documented and a few changes left commented
Avatar
is it worth doing a post on somewhere like retro once the tcrf rewrite is done to just draw attention since the majority of fixed content is pretty much there beyond the hardware/demul issues? (edited)
18:50
like just explaining what has been done, the optimal way to run it currently, etc? can link back to the rewritten tcrf
Avatar
sure, no reason why not
Avatar
I feel like the image building tool isn’t quite ready for general use… but I don’t know when I’ll get back to it
Avatar
i'm fine to hold off on drawing wider publicity to it until you feel ready with that
20:01
though for the purpose of SAAD and for some general purpose dc patching, it seems to be in a workable state as is
Avatar
jesus with that object editor you can see so many ice holes in Big's icecap that got removed
Avatar
the ice paths aren't working because they're looking for switches 0 and 1 but the switches are 28 and 29, the blocks are also really big and sideways for some reason
❤️ 3
Avatar
supercoolsonic 19.12.2024 21:22
Whoa
Avatar
Big's stage uses O FUTAM (small breakable ice) a lot but the final only uses O FUTAL (larger one). There's only one place the small one exists in the final game and that's above the small ice pool in Sonic's act, so you can't see it break without hacking Big in there. Also the hole it occupies got covered up in DX, so it's even harder to see in that version.
Avatar
Avatar
Speeps
the ice paths aren't working because they're looking for switches 0 and 1 but the switches are 28 and 29, the blocks are also really big and sideways for some reason
maybe bigger platforms was a good idea
10:17
in patching to fix the final dc version of this game i still keep wishing, despite big's gameplay not being that interesting imo, that they had kept the intent of having you actually have to explore the stage and do stuff other than walk three steps and cast lure most times
10:18
you don't even need the rocks, just jump...
10:19
feedback from playtests must have been interesting
Avatar
Same, if they did that and made fishing less of a pain in the ass I wouldn't have gotten stuck as a kid
Avatar
i mean tbf i did used to just wander around and not find froggy that easily, but that's mostly cause it was like. surely froggy will be hidden somewhere... so in making it easier they actually made it a bit harder for me as a kid. though i really don't remember how i ever knew to press down to actually hook froggy when i was like, 4.
Avatar
that's further than I got lol, I didn't know the fishing controls at all so I got stuck in twinkle park
Avatar
i still feel like i only sort of know vaguely how they're meant to work lol
12:44
sometimes press left or right to go right or left? sometimes keep pressing until it works? is it camera angle dependent? god (edited)
Avatar
Avatar
woof
in patching to fix the final dc version of this game i still keep wishing, despite big's gameplay not being that interesting imo, that they had kept the intent of having you actually have to explore the stage and do stuff other than walk three steps and cast lure most times
If they wanted you to get the life ring in place of that lure upgrade and fish froggy out of the far end of this pool it'd make a lot more sense to why it exists
Avatar
I fixed SET0803S. It's mainly just a barebones version of what you normally get in Big's layout except the icy floors in the Act 4-only half are rotated incorrectly and there's a few leftovers from Sonic's stage near the end that aren't in SET0803B (which weren't broken anyway since it's just one line of Rings and those boxes, which only have an ID of 0x1E)
21:06
Avatar
supercoolsonic 04.01.2025 22:57
Nice
22:57
Can you fix the gbix error too?
Avatar
will take a look some other time maybe, I just went and did SET0402K too
0:13
Avatar
You can push this as a mod to the dreamcast mods repo so it doesn’t get lost
Avatar
these rings were an unknown object (ID is 76 in the unchanged file, but 75's fixed ID is 77 and 77's fixed ID is 78)
0:19
I'll sort the mods out now
0:24
oh there's already a speed highway one lol, I'll just add the Icecap one then
Avatar
there we go
Avatar
supercoolsonic 05.01.2025 15:41
Those unknown objects are a scrapped object. I always assumed it was a bush of some kind.
15:42
Also I fucking knew those helicopters were supposed to be there!
15:42
I got some pushback on that with the AD SH mod, so they didn’t appear there for Knuckles
15:42
Hahaha
Avatar
Avatar
supercoolsonic
Also I fucking knew those helicopters were supposed to be there!
yep, the only other thing that flies like that is a spinner and their id is nowhere near the helicopter's
Avatar
supercoolsonic 05.01.2025 23:47
Knew it. lol
Avatar
Avatar
Speeps
oh there's already a speed highway one lol, I'll just add the Icecap one then
i think the only difference between the two was that i ended up removing the missing object from the set, the ids i matched up with some work from supercoolsonic. what were your conclusions on which objects got added since whenever the unmodified knuckles set was made? afaik there was an offset from like two common objects and then the removed one later in the list
13:43
the removed object was placed twice but duplicated, so four of them in two places, also
Avatar
2 of the common objects it's gonna be what was added at least
13:48
WV has the same common list up until the end of it so I'm going to assume it's O KN HINT and SPRINGH
Avatar
was there anything special for the ice cap set you fixed?
Avatar
there aren't enough objects in it to tell what they added (#30 is fine, #61 isn't), aside from what I posted above about it it's just an empty version of Big's stage
14:03
oh in this case it's removed since 3D->39
14:05
the offset increases to 5 lower down the list but for this one I have an idea what they took out
14:07
the object o_suisyou is missing a case 3 and it has an unused collision entry
14:12
quick glance at the AD, it's also missing 3 (edited)
14:14
those objects are these things btw
🤔 2
Avatar
@PkR if you don't mind me asking, what was the draw function replacement that got Sonic to render with non-lantern lighting functions in those screenshots you took? Was that one of those broken replacements you commented out in the Ninja Lights test mod? https://discord.com/channels/446023672147345418/1238561775281111133/1238874116866441236 (edited)
Avatar
It's been a while since I last touched this so I don't remember clearly but I think so
12:26
for characters you need to replace the Action functions
Avatar
not proof of anything but i'm doing event work for SA final and was looking. there are gaps in the event numbers between tornado 1 taking off/sonic and tails next events after sky chase 1, and for tornado 2 picking up sonic/sonic and tails next events after sky chase 2. if that might add to the mystery around if they'd planned for sky chase cutscenes to use events or something.. i know some other earlier events are later in the list too. do not know if the event number list can be taken as chronological order of when they made them or redid them.
Avatar
fyi SA2's list skips numbers to fit ingame events and fmvs in
Avatar
there are some leftover events that have text in Japanese mentioning FMVs
Avatar
oh yeah those too, they're in the cutscene decomp
Avatar
https://discord.com/channels/446023672147345418/446023672147345420/1411864313160798302 I updated the autodemo pointer table file with everything I found while making this
0:26
Found a few of the unks too, but only njPrintF/njPrintH iirc
Avatar
You know how njaction is drawing twice? Isn't it doing that in this pre-release Red Mountain shot?
Avatar
hahahaha good spot
Avatar
anyone wanna fix the textures on this thing so we can finally play tokyo international hedgehog hammer
Avatar
supercoolsonic 08.12.2025 20:53
Is it looking for a file or each texture separately?
Avatar
might be able to do separate textures with it
20:59
also was taking a look in 1stread and found an old field flag list. Final has an unused FLAG_EC_POOL_CTRL, which this one looks like it was implied to work with the pool shutter thing
20:59
21:01
maybe they're tied to a debug thing, I might take a look once I'm done with work for christmas
Avatar
most of autodemo egg carrier could do with textures fixing.. i'll try to refamiliarize myself with that version of the game. what worked for previous texture stuff was supplying a pvm name, a pointer to the name, and fixing the pvm entry count?
18:49
and supplying the pvm itself ofc...
Avatar
thankfully they already had prs names listed, just need to keep rebuilding those
12:30
some stuff we are missing for ADV0130
Avatar
if the landtable uses block bit texlist pointers, there are some tools on the research repo for this
13:06
there's also a tool that builds a PVM by looking through a list of textures and a folder of PVR files
Avatar
landtable was affected by supplying an ADV0132.PRS, nothing i have changed seemed to affect the platform itself yet...
Avatar
Avatar
woof
thankfully they already had prs names listed, just need to keep rebuilding those
Nice work
Avatar
The reason why none of the other Egg Carrier acts load their set files is because they aren't listed in LoadSubPrg_TEST (8C07CF60)
🤔 1
1:57
it'd need to be patched to add more like final does
Avatar
supercoolsonic 12.12.2025 1:58
By egg carrier acts, do you mean the different rooms?
1:59
I wasn't even aware that they weren't loading
Avatar
i had to force it by filling the buffer manually when i demonstrated one ages ago
Avatar
Avatar
supercoolsonic
By egg carrier acts, do you mean the different rooms?
yeah
Avatar
in this version's LoadSetFile the second arg is the buffer address, it has 0CB68000/0CB70000/0CB78000 as standard for acts 1-3, for the few act 4s in this list it uses 0CB6C000, which is the second half of act 1's
2:11
So for two of them you'd just need to patch in this: LoadSetFile("EC30", 0xCB68000); LoadSetFile("EC32", 0xCB78000);
2:13
considering none of the files are big there's probably loads of room for EC34/EC35 somewhere
2:13
anyway I need to go to fuckin bed it's 2 AM lol
Avatar
one down :3
knuxhappy 2
Avatar
lol. amy spawns in the scene changer in hedgehog hammer.. it killed the game
Avatar
we need to adjust the coordinates for the different entrances but i don't remember where to find them rn. we need to patch to fix scene changers disabling controls in egg carrier. i've got egg carrier interior loading set files and will do exterior (edited)
Avatar
always cool to see more autodemo stuff
3:55
did you figure out the submod issue?
Avatar
yes i was just failing to account for case sensitivity iirc
Avatar
ah, alright
Avatar
going to push what i have for now, but going through scene changers will disable controls. should be all egg carrier acts loading their set data properly though
5:12
all landtable textures are still broken for any act of egg carrier that had no event in the autodemo, i have included hedgehog hammer's numbers but have not sorted textures for the platform
Avatar
I can go look through the code for those scene changers after work
Avatar
i'm thinking it'll be some act init branch being taken that i didn't cover when i patched out event and enabled controls ages ago. where i patched only enabled controls for spawning into each room from level select
Avatar
the issue with the patch i did is i gutted the event code in act init, my patch runs to play adx and enable controls on mode 00 and then sets the mode to 01. the mode gets stuck on 01 on act change and it never runs the patch again, but somewhere has disabled controls and killed adx.
🤔 1
Avatar
uwgh ok. i can flesh the logic out more: on act init 00 we check game mode manually so we run the patch the first time its done loading and in the gameplay mode (0b) then set act init to 01. act init 01 checks game mode for loading (04) and sets act init to 00 again if so, maintains act init 01 if not. act init 00 again makes sure not to run the adx and control enable code until it is done loading. it holds up without crashing so far. need to do it for egg carrier exterior now. scene changers sending you twice saves you from falling out of bounds in mogura. floor monorail. (edited)
Avatar
I haven't seen much in the scene changer code yet but the round manager (0C930000 in ADV0130) has the code to check for and load the cutscenes
20:56
I assume this is the scene changer object because this is where the itementry list points to (0C900C40 in ADV01OBJ)
Avatar
i basically gutted the event stuff from round manager to put my checks and adx/controls stuff in, i left the stack handling and return stuff intact
Avatar
that's all it seemed set up to do there anyway in AD
21:05
do you think it would impact anything that i only use mode 00 and 01 for round manager though. it seemed to set 02 or 03 for when the events are done playing originally, i can still set it to those modes instead of 01
Avatar
it has some code for mode being 1: that DAT goes to 8c040a00, which returns 8C751300 != 0
21:11
is that the cutscene end thing?
Avatar
i believe so
21:18
it'll have no pointer when events are not playing and there's code to set stage exit mode if its null
Avatar
sorry I'm only just finding out this stuff lol, I never opened this file last year
Avatar
its fine, i'm staring at old patches i wrote wondering what i was thinking lol
Avatar
I played old hedgehog hammer with the display fixed, neat that it does display the golden hammer text but too bad it doesn't seem to do anything
👍 1
21:43
the pool door object is loaded in that area too
Avatar
it works.. i can push as is but its in the music restores mod. i need to rename that and merge it as a submod for restored levels, but i want to take a break for a sec.
Avatar
take your time 👍🏻
21:46
oh neat, it used the washing machine
Avatar
the elevator back out of hall is non-solid btw
Avatar
game crashes if you select palmbase in set edit directly underneath where knuckles is standing 🥲
21:52
does not seem like you can dig on it here
Avatar
yeah I've noticed that, it also hurt him when I tried so I assume its col is wrong
21:53
god knows what DC col values are though, I know they're different
Avatar
hm. are they another thing like cam types that got reassigned ids between versions?
21:54
for me he slides off the centre of it and won't dig, but isn't getting hurt
21:58
the game at least has continuity in AD for which version of egg carrier exterior you spawn in if you go inside a room and back outside. spawning directly in pool sets it to the FB map as default
21:58
monorail is a mess, but sometimes its available to summon and it correctly retracts the hall bridges
21:59
there is no monorail stuff outside that i have seen yet, and if you do set it up by placing the objects it is rotated wrong when it arrives. also non-solid.
Avatar
pushed to the git, Music Restores has been replaced with 'Enhancements', a sub-mod of Restored Levels.
22:09
if you don't download the new AFS bank for the additional music the game will still run fine, music will just be silent for any of the songs the game didn't already include.
Avatar
I looked at palmbase's code - it can still spawn the switch, though it seems to have some extra steps before doing so
22:10
(third image is what the childtask in the first image is)
Avatar
SegaGarbage
Avatar
that's what we call the union those use in the PC disassembly lol
22:11
Palmbase is at 0C9374E0 in ADV0100
Avatar
what was the latest version of your pointer remapping and labelling work? i feel like i want to redo my autodemo 1st_read ghidra project and use regex to format something to auto label functions again
22:14
plus now i know how to split the binary for the code and data sections for better ghidra analysis
Avatar
the spreadsheet in the repo is still up to date iirc
22:16
lemme check
Avatar
thanks. i'm finding all of this easier than figuring out the addresses and stuff for blockbittool for pvm stuff 😅
Avatar
yeah it is up to date, it's got all the stuff I found when porting edit mode
Avatar
sweet. i uploaded a video of my Egg Carrier testing so far, i will leave the better video up to you if you'd like once the texture work is done. https://www.youtube.com/watch?v=0rVDwrX47sA
Avatar
nice
Avatar
supercoolsonic 12.12.2025 22:40
Oh hey the washing machine exists
22:49
god, annotations being removed screwed this vid
Avatar
how did you resolve EC_Living using the washing machine that doesn't exist in DX?
22:52
i didn't demonstrate pulling the booster boxes as gamma also. just sonic falling through the floor for trying
22:52
monorail is summonable.. no idea why it is so broken in hall in AD though
Avatar
the washer is there in DX, but I didn't get that part right lol
Avatar
might be worth checking through the objects there for issues now that we have set loading
Avatar
Avatar
Speeps
the washer is there in DX, but I didn't get that part right lol
oh neat! thought it would have just been purged from the object list
Avatar
I got a lot wrong in that video because I was just working off ID diffs, and didn't know about AD having different object lists in every act
Avatar
for ADV0130 textures, a better look at the files it is already set up to look for
Avatar
Avatar
Speeps
I got a lot wrong in that video because I was just working off ID diffs, and didn't know about AD having different object lists in every act
lol. and all this time it was just two item capsules locked in cell 2
Avatar
you can even see them in the demo reel lol
Avatar
ADV0100 file names..
🤔 1
Avatar
good luck with EC_Water also, cause i've seen nothing that suggests it can be toggled between like in final
23:13
there was code i thought related to adventure field flags i found years ago, but everything it jumped to was stubbed rts nop functions
23:13
EC_Hall being able to retract the bridges is the closest thing we have that just works as is
23:14
there were debug menu strings for minibosses..
23:14
never got that to work though
Avatar
other thing i've only now thought about, the door into EC_Living being swapped is cause the Captain's room would be facing the wrong way if they didn't swap the lift buttons and the door in Living
Avatar
yeah
23:28
FYI the repo didn't make an empty include folder for enhancements
23:29
unless you just meant the download
23:32
I always thought this cap was meant to have an opening animation, glad I was right
23:33
doesn't rotate the right way though lol
23:33
in this version it looks like it plays the animation when your Y pos is lower than the floor, but they removed that in final
23:34
I bet the anim is still somewhere unreferenced though, I'll look when I get around to it in the decomp
👀 2
Avatar
Avatar
Speeps
FYI the repo didn't make an empty include folder for enhancements
yeah, i noticed when pushing but i am using VSCode and don't want to go more in-depth.. is it fine to just put the new AFS data on the github...
23:45
i avoided because its copyrighted material
Avatar
Avatar
Speeps
I bet the anim is still somewhere unreferenced though, I'll look when I get around to it in the decomp
oh yeah! it did it when i forced sonic into the pit, but you can't get back out of there without free movement
Avatar
Neat, I tried it a few minutes ago but got blocked by collision lol
23:49
in the autodemo it's just global Y pos
Avatar
we should maybe look for a decent code patch method to force sonic to have lightspeed dash..
Avatar
yeah
Avatar
stages still require it sometimes
23:50
i just don't fully understand how to make it happen. what i read on current tcrf was about forcing anim ids
Avatar
would be nice if Ghidra could load the bloody character code
23:50
it's so big it fails
Avatar
is it a giant switch case..
Avatar
yeah
Avatar
rest in piss
Avatar
there's two functions for them, one that mainly handles physics and one that handles character actions
Avatar
does ida have no sh4 support.. the more recent one
Avatar
no idea
23:57
I'm still using 7.5, the one the torrent used to have
Avatar
Avatar
woof
there were debug menu strings for minibosses..
For the miniboss thing, there is a menu that you can control with the second controller, but it didn't do anything beyond that last time I looked at it
Avatar
Avatar
woof
does ida have no sh4 support.. the more recent one
Only disasm
Avatar
oh yeah it has that
0:12
last year I was using its graph view to get all the pointers that needed fixing
Avatar
do i need to patch station square to load its set and cam data....
0:16
running out of good code caves within the function that does it unless i do jump and branch tricks lol
0:17
but it can be done
Avatar
they don't have anything noteworthy but you could
Avatar
i mean theres not really any station square specific objects in, but they have objects placed
Avatar
yeah
Avatar
Here it is, it's a menu in the top left of the screen that lets you scroll through the minibosses
👍 2
0:55
It's still in the final using the standard njprint font size instead of this small font, but the rest of the miniboss stuff seems to be removed
Avatar
you've tried this in the relevant rooms in AD?
1:39
just to rule stuff out
Avatar
Still only displays the menu
👍 1
Avatar
guess what, the Autodemo PRS files hold PVMs that use a non-standard set of header flags, including one flag that we have labelled as "Unknown"
12:46
research time
12:51
12:54
hm, that might be a different spec, doesn't align with what I know
12:55
...that, or my understanding of those flags has been wrong this entire time
Avatar
on top of our flag handling being wrong, it looks like Autodemo PVMs (at least the one compressed as ADVEC31.PRS) wasn't built according to the official specification (Ninja requires the first four flags to be always present for a PVM to be treated as valid, but in the Autodemo it's missing two of the four)
Avatar
ItsEasyActually 13.12.2025 13:40
interesting that it's in line with other files seemingly updated in September of '98, but it's the odd one out of the bunch
Avatar
it's weird because the extra flag it uses is supposed to tell the PVM has a COMM chunk, but it doesn't actually have one (edited)
13:41
maybe the flags meant different things at some point
Avatar
ItsEasyActually 13.12.2025 13:41
that would be my guess
Avatar
I wonder if that has anything to do with our trouble getting mipmapped textures to work in Windy Valley
13:42
I figured out the differences and was able to build an identical PVM that the Autodemo can read, might try it there too
13:44
huh, SA1 DC has the same set of flags
13:44
am I reading the docs wrong or something
13:45
SA2DC also sets that flag...
Avatar
and it looks like AD PVMs don't have the 32-byte alignment either...
Avatar
Avatar
PkR
it's weird because the extra flag it uses is supposed to tell the PVM has a COMM chunk, but it doesn't actually have one (edited)
I was dumb, it actually lines up. It's like this: Filenames = 0x1, // PVMH_PS_PVRNAME PixelDataFormat = 0x2, // VMH_PS_CATEGORYCODE TextureDimensions = 0x4, // VMH_PS_ENTRYINFO (EntryStatus) GlobalIndex = 0x8, // VMH_PS_GLOBALINDEX - This and all the above must be present for a valid PVM ModelName = 0x10, // PVMH_PS_CHUNK_MDLN ConverterName = 0x20, // PVMH_PS_CHUNK_CONV PVMI = 0x40, // PVMH_PS_CHUNK_PVMI IMGC = 0x80, // PVMH_PS_CHUNK_IMGC PVRT = 0x100, // PVMH_PS_CHUNK_PVRT COMM = 0x200, // PVMH_PS_CHUNK_COMM BANKID = 0x400, // PVMH_PS_BANKID PVPL = 0x800, // PVMH_PS_CHUNK_PVPL PVPN = 0x1000 // PVMH_PS_CHUNK_PVPN
17:22
so Autodemo and final's 0x190 means PVRT+Filenames+GBIX, which checks out
17:26
still doesn't line up with that warning in the SDK about having four fields specified but whatever
Avatar
booster room finally loaded textures
knuxhappy 2
18:07
I also figured out the alignment thing I think. PVMs output by the tools should now be much more compatible with what Sega expects (even though the Autodemo is still weird in that some files aren't aligned properly)
👀 1
Avatar
its an annoying one, landtable textures work with what PkR reconstructed from the texlist addresses but if we specify a pointer to the texname on landtable struct then all objects lose their textures. even acts that are normally seen in autodemo cutscenes have no texname specified. if i specify a texname pointer for prison or hall, the landtable textures work and all objects lose their textures.
22:35
if i don't specify texname then landtable textures still work by including the correct prs files and objects do have textures that are correct most of the time
22:35
depends which act you spawn in
22:39
we are at least partway there
knuxhappy 1
Avatar
still there's things that don't seem quite right. ignoring objects, the side of the green glass cylinder seems wrong
22:48
like..
Avatar
Eggman's mountain dew machine
Avatar
get a load of this..
22:55
given the used stages aren't specifying texname but do use their textures that are in a file corresponding to the list of prs names, i'm wanting to do it the same way by not specifying texname for the broken ones.
Avatar
Avatar
woof
like..
and looking at the two segments of the glass cylinder from this image in SALvl, they are both set up the same for materials?
Avatar
to avoid overwriting code with texture data i am currently patching the filenames to follow the naming convention the used acts have, so ADV0100 becomes ADVEC00 for example. i will implement adding the texname pointers for exterior and then comment them out, for the sake of testing, then i can push what i have. what remains is figuring out the broken texture issues for landtables and sorting object textures
23:26
we are trusting the texlist orders to be correct as specified in the code, but i do think Booster looks very weird with its textures following that list.
Avatar
pushed. if you want to test with the texnames specified by pointers, uncomment those lines from the bottom of ECSC.ini. here is an example of how it looks without those and with.
Avatar
there's something strange about the floor by the elevator in hall, it accelerates most characters and gamma can't stand on it
Avatar
wrong collision flag probably
Avatar
if anyone has Windy Valley textures encoded with mipmaps I can try to get them working ingame
Avatar
EC_Booster looks weird cause of gbix conflicts with textures in OBJ_EC_C DeletThis
Avatar
waiting for the tooling for rebuilding functioning prs files, but these are the conflicts in the current EC texture data
2.41 KB
Avatar
Avatar
PkR
booster room finally loaded textures
current conflicts should be fixed now.. thanks for your work PkR
Avatar
there's texture data already in the game for some egg carrier act's objects, changing the name string so they are loaded might lead to new gbix conflicts but this no longer looks bad..
Avatar
huh. i supplied the correct hedgehog hammer textures and thought it just didn't work again, but it does use its textures and thats why it would briefly change appearance when hitting something... but why like this...
🤔 1
Avatar
both variations are wrong, so it's probably just njSetTexture going apeshit
Avatar
the code for when one of the objects in hedgehog hammer is exploding will take a pointer to the obj texlist while its preparing to call CreateExpParts
12:03
Avatar
pushed, hedgehog hammer wasn't being provided the textures pointer on its njSetTexture call in the display function.
knuxhappy 3
Avatar
i think all we are missing are textures for objects in Captain, Living, and Pool. i've updated the file names in the patch so these can be provided under prs files called OBJ_EC03, OBJ_EC04, OBJ_EC05. there was an OBJ_EC10 in the data that i have no idea what to do with, it didn't fit for those three. seems it would fit for one of EC_Deck's maps, but they already have appropriate textures from other files.
Avatar
Maybe it was for stage slot 30 before they changed it
Avatar
seems just a duplicate of OBJ_EC_AB
13:30
but might hint it had that slot at some point i suppose
Avatar
should i add the hedgehog hammer object to the set in my patch so it doesn't need to be placed manually each time...
Avatar
Sure
14:34
I was thinking about that yesterday too
👍 1
Avatar
pushed
14:36
thought about starting on the remaining object pvms but i'd need to go through each object
Avatar
textureless fans, question mark ceiling...
❓ 1
Avatar
i don't remember how to fix the missing texture for stuff like washer particles, or the maid robots sweeping particles.. i have only got Captain left to do and then i'll push these. i resolved all gbix conflicts so far, and anyone else is welcome to change them if needed, i am following the texlists defined from first unique object in each object list. and rebuilding the prs files with the fixed version of archivetool (edited)
Avatar
as far as i can tell i am missing one entry from OBJ_EC05, but if i include it it then breaks the order of textures for everything that is correct. i'll stop here for now unless there's any big issues
21:39
0C90118C in ADV01OBJ seems to init field flags, the pool's is 2C78EA07
Avatar
supercoolsonic 14.12.2025 21:43
🤔 Is the pool ever closed like that normally?
Avatar
nah, it sets that flag to 1 when you load the act
Avatar
Avatar
Speeps
0C90118C in ADV01OBJ seems to init field flags, the pool's is 2C78EA07
8C78EA00 is seqvars by the looks of this, 8C78EA12 is the flag for egg carrier transformation (edited)
Avatar
The list like I pointed out a few days ago is in 1stread at 8C18FA3C: 0: SSVAR_TIME 1: SSVAR_EGG_ON 2: SSVAR_CASINO_BUTTON 3: ECVAR_JAIL1 4: ECVAR_JAIL2 5: ECVAR_JAIL3 6: ECVAR_ROTARYFLOOR 7: ECVAR_POOLOPEN 8: ECVAR_OPENBRIDGE 9: ECVAR_GATE_A 0A/10: ECVAR_ELEVATOR_TOP 0B/11: ECVAR_ELEVATOR_BTM 0C/12: ECVAR_HAMMERSWITCH 0D/13: ECVAR_PALMSWITCH 0E/14: ECVAR_MONORAIL 0F/15: ECVAR_EGGMANBUTTON 10/16: ECVAR_MOGURA 11/17: ECVAR_SCENE_CHANGE 12/18: ECVAR_TRANSFORM 13/19: ECVAR_LONGHAMMER 14/20: ECVAR_TYPE3LASER 15/21: ECVAR_SERVICE_MONORAIL 16/22: ECVAR_EGGLIFT_MODE 17/23: ECVAR_EGGLIFT_RUN 18/24: ECVAR_E102_BOOSTER 19/25: ECVAR_TORNADO_LOST 1A/26: ECVAR_POOLFILLED 1B/27: ECVAR_ALIFE_FOOD 1C/28: ECVAR_ALIFE_EGG (edited)
Avatar
didn't see anything for enabling or disabling flags manually in game for AD, so i have been testing.. still testing, need to implement it for adv0130 too if it all works
Avatar
Nice
15:54
I looked for a flag toggler too but I only found where they were initialized
Avatar
sonic team made me write one myself... pushed as an update to the enhancements mod, controls: d-pad right to open the menu, d-pad up/down to select a flag, A to toggle, B to close. it should also correctly close itself if you try to open SetEdit or CamEdit, or somehow have it open during an act change.
knuxhappy 2
17:52
it is only implemented for Egg Carrier also
Avatar
yeah I didn't find it affecting anything in SS
Avatar
there is that time flag, but is that also nothing
Avatar
yeah that's what I'm on about mainly
17:54
It didn't do anything with it when I checked
Avatar
I got to that flag function through these pointers just above the list (SS/EC/MR), leads to a list of largely empty functions but some jump to the setup flags one. In SS they're all empty.
18:18
func at 8C072A6A (where those 3 are referenced) checks stageno and grabs which one it needs if it's an adventure field but it's pretty hard to read because none of what it uses is in the sheet lol
Avatar
some scene changers in AD egg carrier were broken for being off by one before i patched them.. exterior was 1c, going to interior was 1f. had to add 1 or you'd get dumped into station square
Avatar
hahaha
Avatar
i thought about patching station square to load its set data based on conversations in the general sonic adventure thread, but its set file has objects much higher than the end of the object list. it has like 0x13 objects in the list... set has objects of ids like 33, 4f, 50?
16:20
for SD_Office, SETSS00S.bin...
16:20
it would just crash if i made it load that
Avatar
twinkle park entrance has lots of things out of bounds too, i'm wondering if they were taken as placeholder from other stages or something
Avatar
supercoolsonic 19.12.2025 17:37
What does the layout look like?
Avatar
Avatar
supercoolsonic
What does the layout look like?
Avatar
supercoolsonic 19.12.2025 19:06
Huh...
Avatar
what the hell
19:37
does it sync to any other map?
Avatar
sd_office and twinkle park entrance seem to be duplicate set files, so it matches up with sd_office... but still a lot out of bounds
20:15
was station square ever being a more connected area ever confirmed anywhere?
20:16
still that's so many more object ids than the AD list has though..
Avatar
supercoolsonic 19.12.2025 20:18
Wasn't it known at some point that the adventure fields were once merged? Like, all of SS was one map, all of MR was one map, etc?
Avatar
i feel like i knew that but i don't remember why, so just wondering if that was from an official source or just word of mouth
20:20
the entrances in station square make sense relative to each act, in terms of coordinates
20:24
unless this was one set file for each area loaded in each one before trimming what wouldn't be needed
20:24
still positionally things do line up. i think the only issue with entrance coordinates was twinkle park entrance being closer to the train area by AD
20:25
if you spawn in the kart or twinkle park entrance/exits you will fall out of bounds
20:25
but the geometry is nearby, its just shifted on one axis
Avatar
Avatar
woof
was station square ever being a more connected area ever confirmed anywhere?
Not concrete, but all the areas of station square are positioned in the right spots iirc
20:29
so those out of bounds objects might match the other maps
20:31
it's been speculated for years because of the casinopolis object not unloading
20:31
and it looking like it matches up to a connected map
20:32
maybe in blockout form?
Avatar
could be
Avatar
but stuff might have shifted positionally in dev anyway, if you try spawning at the twinkle park act entrances you will see some of what i mean
20:33
i noticed it when egg carrier would dump you there mistakenly
20:34
don't see why it would have so many more objects in the list that aren't in AD
Avatar
is the list in ADV00OBJ?
20:34
I forget
20:34
That file was gutted and seems to be made up for the autodemo, whereas ADV00 wasn't.
20:35
(Except Rd if that's in there)
Avatar
list is in ADV00OBJ
20:36
Avatar
yeah the reason for those higher values is because we don't have the full list, the code for "CASINODUMMY" kind of gives it away
Avatar
does it reference stuff that isn't there?
Avatar
Nah, it's extremely basic and nothing like the full Casinopolis facade object.
Avatar
its a dummy placeholder
Avatar
yeah
Avatar
could figure out the object ids with guesswork in the final maybe, for what might have been there
20:41
not as simple to translate as speed highway 3 was for AD
Avatar
We have screenshots of roughly the same version of station square in ADV00
20:42
the NPCs are part of the cutscene, but the lampposts and traffic lights aren't.
Avatar
keyboard i'm borrowing doesn't have numpad so i can't change camera zoom speed for a better image, but things do seem to line up with that one
20:46
those crossing lights are in the road, too, lol
Avatar
also do we know why lighting in egg carrier is so blue.. is this related to the issue with lights in sky chase from ages ago or what (tagging u PkR because that seemed to be from something you changed at the time @PkR )
20:55
like thing look green for characters and landtable but objects are very blue
Avatar
I won't know anything about palette stuff
Avatar
Avatar
Speeps
(Except Rd if that's in there)
oh that's in OBJ too
21:13
but yeah this all that's there for casinodummy
Avatar
dark sky...
15:17
i was only doing B_E101R atm, but it calls njSetTexture with only a pointer to the pvr names and no pvm name set. supplying loose pvrs it wanted fixed the textures for several of the other egg carrier bosses too, aside from chaos 6 wanting some textures for flying egg carrier that i didn't include... i think i will just do loose pvrs for these if that's acceptable
15:24
though as for where to then put them in the mod folders i don't know right now, since they're in an include folder in B_E101R rn
Avatar
chaos 6 at least has defined names for chaos prs files, but i'm not sure where to be looking for the wind textures right now
Avatar
EC_CLOUDS/CHAOS6_BG
👍 1
17:23
chaos 2 is grey like there's missing texture data, do you know if that is actually missing textures or just the model isn't assigned any..
Avatar
yeah none of the chaos2 texture files are there
Avatar
the chaos 6 textures are there on the disc and are named in the bin, so that's fun
17:44
this is the most up to date texture file list
Avatar
i'm surprised by how many are unused in final but are used in AD
17:51
based on that list
Avatar
you should make a table like that for the autodemo ones (edited)
Avatar
i would need to go through the defined prs file names in each bin and then there's also the ones we had to supply our own names for (based on final)
17:56
maybe better to modify the list there to have the unused ones like "unused/used as egg carrier lift textures in the Autodemo"?
17:56
though listing any the AD has that final does not would be useful too
17:59
do you have notes from when you fixed chaos 0/4/6? like identifying functions in their bins
18:00
i will look through for references to njSetTexture, but might save some time
Avatar
Avatar
woof
do you have notes from when you fixed chaos 0/4/6? like identifying functions in their bins
Sorry for late reply B_CHAOS0 0C904EA4: Bg_Chaos0 0C901FE0: BossChaos0 0C902FC0: changeHeadColorChaos0 0C9024A6: Chaos0Display 0C902AC0: Chaos0DisplayRarm 0C900B00: chaos0Jump 0C9004A0: chaos0Punch 0C9007D2: chaos0Roll 0C9001C0: chaos0Walk 0C903720: ctrlRainEffect 0C901EF2: deleteChaos0 0C901CE0: execModeChaos0 0C9037A4: genericdraw (I named this) 0C9027A6: landtablething (this too) 0C903400: RainEffect 0C904E00: Rd_Chaos0 0C904E54: Rd_Chaos0Init 0C9000F4: setApartTargetPos 0C901EE8: setChaos0 0C902E20: setChaos0ColliParam 0C901BE0: setMaterialChaos0 0C90374E: setRainEffect 0C9032DA: setShakeHeadParam 0C903068: shakeChaos0Head B_CHAOS4: 0C9008C0: BossChaos4 0C904140: C4SuimenYurashiSet 0C900F20: Chaos4Damage 0C900BF2: Chaos4Display 0C904A38: Chaos4EmeraldSet 0C9017C0: Chaos4Hashira 0C900374: chaos4Move 0C901AC0: Chaos4Punch 0C901040: Chaos4Rolling 0C9028C0: Chaos4Separate 0C903d8C: Chaos4SideCollisionSet 0C90062E: Chaos4Up 0C901D38: Chaos4ArmFlagSet 0C904A14: End_SuimenYurashi 0C9006C0: ExecModeChaos4 0C904AE0: Rd_Chaos4 0C904B00: RdChaos4Init 0C900828: setChaos4 B_CHAOS6: 0C901720: Bg_Chaos6 0C900C80: BossChaos6 0C900F10: Chaos6Display 0C9009E0: ExecModeChaos6 0C9016A0: Rd_Chaos6 0C9016BC: RdChaos6Init 0C900BE8: setChaos6 (Creates BossChaos6)
Avatar
Avatar
Speeps
Sorry for late reply B_CHAOS0 0C904EA4: Bg_Chaos0 0C901FE0: BossChaos0 0C902FC0: changeHeadColorChaos0 0C9024A6: Chaos0Display 0C902AC0: Chaos0DisplayRarm 0C900B00: chaos0Jump 0C9004A0: chaos0Punch 0C9007D2: chaos0Roll 0C9001C0: chaos0Walk 0C903720: ctrlRainEffect 0C901EF2: deleteChaos0 0C901CE0: execModeChaos0 0C9037A4: genericdraw (I named this) 0C9027A6: landtablething (this too) 0C903400: RainEffect 0C904E00: Rd_Chaos0 0C904E54: Rd_Chaos0Init 0C9000F4: setApartTargetPos 0C901EE8: setChaos0 0C902E20: setChaos0ColliParam 0C901BE0: setMaterialChaos0 0C90374E: setRainEffect 0C9032DA: setShakeHeadParam 0C903068: shakeChaos0Head B_CHAOS4: 0C9008C0: BossChaos4 0C904140: C4SuimenYurashiSet 0C900F20: Chaos4Damage 0C900BF2: Chaos4Display 0C904A38: Chaos4EmeraldSet 0C9017C0: Chaos4Hashira 0C900374: chaos4Move 0C901AC0: Chaos4Punch 0C901040: Chaos4Rolling 0C9028C0: Chaos4Separate 0C903d8C: Chaos4SideCollisionSet 0C90062E: Chaos4Up 0C901D38: Chaos4ArmFlagSet 0C904A14: End_SuimenYurashi 0C9006C0: ExecModeChaos4 0C904AE0: Rd_Chaos4 0C904B00: RdChaos4Init 0C900828: setChaos4 B_CHAOS6: 0C901720: Bg_Chaos6 0C900C80: BossChaos6 0C900F10: Chaos6Display 0C9009E0: ExecModeChaos6 0C9016A0: Rd_Chaos6 0C9016BC: RdChaos6Init 0C900BE8: setChaos6 (Creates BossChaos6)
no problem, thank you
Avatar
aside from the missing CHAOS_SURFACE textures, there was a texture defined in the texlist for CHAOS_EFFECT that was missing from the actual pvm, "drop.pvr" (not c_drop which was present)
knuxhappy 2
Avatar
Nice, you got those drops working
Avatar
https://discord.com/channels/446023672147345418/446023672147345420/1452813140386648236 relevant to things we've talked about in here before so I'm linking it here
Avatar
doing loose pvrs is fixing multiple stages at a time for these, i might just make it its own mod for the bosses. going through mystic ruins again
9:31
just gotta find everything defined in the texlists, though there's a few that do not exist in any version for mystic ruins, and monkey cage, despite working with the texlist for the regular monkey enemy, is displaying textures in the wrong places
9:32
scrolling through setedit in mystic ruins can crash the game sometimes but not always. all other objects have their textures working now. the type of crash is a music stutter loop so i will go look at the crash handler address and try debug that when done with family visiting today
9:35
if someone else wants to try running it through flycast debugger, assuming the crash in demul is reproduceable and doesn't exit emulation, the exception handler can be used by breakpointing @ AC000010
9:36
then you can follow the return address and see what sent you there
Avatar
this build of flycast debugger is based on the last commit it had, i have changed the interpreter mode cpu throttle down from 8 to 3. this lets it run a lot faster if your cpu can handle it. you can modify the cpu_ratio value by changing the byte at address 0x00a96d9c from 03 to 04, 05, etc, if you are getting actual lag on cpu_ratio 3. if your cpu can handle anything better than the default ratio of 8 then this change is an improvement.
👍 1
9:53
if you handle cpu ratio 3 fine then try lower.
Avatar
Did we ever mention an oddity in the invisible area at coordinates 0,0,0 in Icecap Act 3? there's a function or other that makes Sonic run down the invisible tunnel present oob (edited)
Avatar
i didn't know about that. you're sure its specific code and not just collision flags?
Avatar
not sure
10:13
I'll look into it later today
Avatar
i don't see the tunnel in SALVL so.. (edited)
Avatar
it only triggers when the stage begins. If you put the character back, it doesn't force them to run down that path until you restart the level (edited)
Avatar
it also only makes you run for about 3 seconds before terminating
Avatar
not sure why i never played through ice cap act 2 since doing set edit. its so messy in AD
10:30
soft locking act 3 for being in the air when it put me on the board lol
Avatar
Avatar
MainJP
it also only makes you run for about 3 seconds before terminating
on its face it seems like something they were playing with for the cutscene before mounting the board. should check the unveiling footage again
18:58
the presentation where they demoed that level and died to avalanche touching them lol
Avatar
looks like it starts the same as the AD one
19:20
with the sideways gate
Avatar
@Speeps do you or windii still have the high quality recording of that
19:23
sorry for ping
19:24
is there a way that can be uploaded somewhere raw
Avatar
Avatar
woof
@Speeps do you or windii still have the high quality recording of that
That wasn't on the video
Avatar
was the one windii had uploaded just the unveiling trailer?
Avatar
Yeah there's still a reupload of it
Avatar
i am still interested in raw file rather than youtube compressed but no worries then and also no rush at all
Avatar
Avatar
MainJP
looks like it starts the same as the AD one
can only speculate whatever is going on when spawning at 0,0,0 is leftover from earlier then..
19:27
blockout ice cap act 3 type shit
Avatar
Avatar
MainJP
with the sideways gate
the 0,0,0 tunnel goes off to the side in a way that would make the sideways gate make sense i think, if it was placed there ever
Avatar
i had the same thought, about it being a leftover from the older version of the level
19:40
unlike the cutscene, that autorun scene in the 0,0,0 tunnel doesn't prohibit the player from jumping during it
19:43
still forces you forward though
Avatar
if you did jump and did hit the trigger for being put on the board you'd be softlocked in place, at least as of AD
19:47
going to SetEdit and back out for free movement doesn't fix that
19:50
little sad i didn't find a remnant of the score countup pulsing side to side display stuff in ice cap 3 😭
Avatar
got all the mystic ruins textures back that i could find by name from texlists but still many unknowns that don't exist in the AD data or in any other build, at least not with the same names... scrolling the object list is still unreliable, the occasional crash does not go to error handler on flycast debugger, and some objects that have their textures sometimes do not load their textures until you scroll back and then go to them again. https://www.youtube.com/watch?v=Udd6l7ZRvYU
10:48
i've not pushed these to git yet, i have some remaining boss stages to sort and then to bundle as its own "missing boss textures" submod for restored levels...
12:07
chaos 0 seems to want a chaos0rain pvr that doesn't exist in any version, the rain itself of course being one of the ninja line functions iirc
12:12
could still do with investigating the sound effects in chaos 0, cause they are horrible
Avatar
the only remnants of proto windy valley at the blockout stage i know of.. the mistakenly untextured polygons at the end of act 3, which are set up with vertex colours. makes me curious about the rest of the proto windy valley geometry
14:07
i think even final eggman's base in mystic ruins still had the original blockout polygons vertex coloured while the newer ones to add detail and smooth things out did not. i just don't remember how i ever managed to view those
Avatar
block out stage? i thought AD had the basically "finished" geo for WV, did you guys find an alternate version?
Avatar
its the one we know but running under ninja lighting..
15:34
all i know from geometry made for SA when they abandoned ninja lighting, is they stopped caring about vertex colours once things were textured
15:34
taking that assumption back to windy valley, these polygons having colours implies to me its part of what remains of the blockout stuff
Avatar
ItsEasyActually 26.12.2025 16:02
the stage we have from the AD doesn't completely match some screens we have, basically it's just texturing being ever so slightly different. it wouldn't surprise me if we the AD is the earlier version especially with those bits still in there. main reason i think that's likely is the Casinopolis geo we have is all block out even though the original NiGHTS pinball table had been implemented by then (iirc it was in screenshots predating the AD, might be misremembering though).
Avatar
supercoolsonic 26.12.2025 16:07
I recall the early NiGHTS table only starting to appear in screens in early November.
Avatar
casinopolis being textured and stuff i had just taken to have happened in the last month or two of dev, same for windy valley redesign
16:13
granted nights pinball blockout was an earlier file
Avatar
supercoolsonic 26.12.2025 16:16
Casinopolis is from September, it was probably a bit further along when the AD was built than what was included in its files. (edited)
Avatar
then yeah, it was likely textured and with objects in by the time of AD, then between AD and final was redone
16:18
i had thought they had fully abandoned this iteration of Wv by AD though
Avatar
supercoolsonic 26.12.2025 16:18
They probably did, tbh
16:18
Final WV was probably in the middle of concepting
16:19
Considering it doesn't show up in screenshots until early December (edited)
Avatar
i mean.. there's other sega games using 6 months earlier than final footage in their trailers even after SA
Avatar
ItsEasyActually 26.12.2025 16:26
if Iizuka is to be believed, Windy Valley was basically left in a shit state late into development and he had to take on redoing the whole stage
Avatar
i could see that having been the last two months of dev or so though
16:53
you said AD wv seemed a little rougher than stuff we'd seen before having access?
Avatar
also fwiw, PkR identified and fixed an issue with PRS files for the autodemo.. does anyone have the original files for the attempt at restoring the textures for proto windy valley with mipmaps?
17:03
we restored them without mipmaps and it worked.. but with this issue fixed it would be cool to attempt again the ones that still have their mipmaps
Avatar
I don't have any with mipmaps
17:29
and I think some of these are the old textures
Avatar
Avatar
woof
you said AD wv seemed a little rougher than stuff we'd seen before having access?
ItsEasyActually 26.12.2025 17:43
Act 1 is the only one i speak to for certain as we have a lot less to see from Act 3. Act 1's image in the disc checker for the DC has different texturing for the grass compared to the model we have. best i can tell the models are all the same, so it's just some varying texturing
Avatar
That image of Act 1 was the one dated Dec. 9 1997, and it was probably like that before the compile date
Avatar
i remember how to do actual texlist corrections now.. can properly set up the rest of the bosses this way for tidiness, will just take a little longer
knuxhappy 2
11:41
32ascii is already a loose pvr in autodemo anyway, so it only needs the pointer to the texlist to be supplied in the list of lists in each boss
Avatar
these are listed among the texlist data in chaos 0, but not sure what it is at this time.. location in ram is not filled with anything by default in the fight and i don't have it analysed enough to see any other references to the pointers
Avatar
E101R using a pb file for textures is a curse.. no file names inside...
13:02
while autodemo has a texlist with names for it
Avatar
suppose the e101 factory textures might save me here
Avatar
that pesky dark sky
Avatar
wonder why that is.. was the stormy egg carrier skybox set up to be darker?
Avatar
i have only got EGM1 and 3 to sort, then the loose textures to go in their own mod
14:11
i was able to make chaos 0 load and use prs compressed pvms, but this led to issues with wrong textures.. if its all gbix conflicts i do not feel like hunting those down. loose pvrs are working fine though so i will just do those, i have every boss correctly using the 32ascii texture too
14:12
chaos 2 i'm not certain how to fix for now.. i got its brain using a water texture but still the model is white. it might require actual pvm sorting to fix
14:15
egm3 still needs collision sorting and i am wanting to attempt it again more than doing the texture stuff atm but i'll try to stay focussed
Avatar
after PkR's fixes for ArchiveTool i tried extracting and recompressing the VQ compressed+mipmaps windy valley textures ItsEasyActually posted ages ago, that used to crash the game.. no crash now. left footage is without mipmaps and right footage is with.
15:01
i wanna do some testing but i'd say the recompressed archives would be fine to push to git soon
15:01
could maybe optimise further if i redo the pvr files with pyPVR
Avatar
mystery solved lol
15:04
they're pretty big but it's possible some textures might work without VQ
Avatar
also for what its worth the mipmapped one ran slightly better than without under ninja lighting too
Avatar
Avatar
PkR
they're pretty big but it's possible some textures might work without VQ
does VQ compression make performance worse do you know..
Avatar
I know it cuts VRAM usage in like half, not sure about actual rendering performance. Probably not
Avatar
for windy valley i might be inclined to leave it VQ compressed just for the sake of the whole stage being way too big and terrible for performance as is
15:16
but i could still test. have to go to an appointment later and its gonna cut into my time though
15:16
do we have a source for the non-VQ textures or do i need to go find and rebuild this
Avatar
the PC mod
15:18
2.32 MB
15:18
they're also mipmapped
15:19
but the PVMs themselves may or may not load as-is, depending on what they were made with
Avatar
ItsEasyActually 15.01.2026 15:19
if those are the textures from the mod, they use whatever we were doing at the time with the texture editor and puyotools (edited)
Avatar
hard to tell then lol
Avatar
Avatar
ItsEasyActually
if those are the textures from the mod, they use whatever we were doing at the time with the texture editor and puyotools (edited)
did you have to edit together any textures for it or were they all sourced from SA DC and then modified with texture editor and puyo?
Avatar
ItsEasyActually 15.01.2026 15:24
the majority of the textures are recreations
15:24
so we were working with png files and converting them to pvr for release iirc
Avatar
ok, thank you. if the PC mod side textures are not VQ'd then i will try them, but otherwise i am not going to attempt to redo the texture edits and as is with fixed archives what is here now is alright
Avatar
Avatar
ItsEasyActually
so we were working with png files and converting them to pvr for release iirc
though i guess if it is not a pain, if anyone involved has the source png files then i could try using pyPVR with them. it could be more hassle than its worth.
Avatar
pyPVR will only be better with VQ
15:33
if it's just converting to lossy color formats, they're alright
Avatar
ItsEasyActually 15.01.2026 15:37
i probably have the original finalized png files on one of my old hdds, but i have no idea which one and i don't have the time to dig them up unfortunately
15:43
This is all I could find on my drive
15:43
I dunno which ones we used, but they should be in there
👍 1
Avatar
thank you both
Avatar
Avatar
PkR
I know it cuts VRAM usage in like half, not sure about actual rendering performance. Probably not
that could help with texture cache (which would mean perf speedup) (edited)
16:38
assuming the dc had any
16:39
same with mipmaps
16:39
aside from fixing aliasing its why mipmaps are important (edited)
Avatar
tests with ninja lighting, left without vq+mip, right with
16:41
definitely a slight improvement under that with them
16:42
(in demul, so no cpu overclocking)
Avatar
so when are we gonna boot this on HW lol
Avatar
Avatar
PkR
so when are we gonna boot this on HW lol
whenever i debug why some patches are failing. the time to load the new patch build onto sd and then test is killing me
16:50
mostly its probably going to be the delayed instructions on jumps and branches
16:52
both flycast and demul are inaccurate on those
16:55
it might also be worth recompressing all prs files we have done with the recent fixes if there was stuff beyond pvm alignment
Avatar
yeah the PRS thing is definitely worth checking out
16:56
the previous hacks that include PVMs might've all worked by chance
Avatar
whole thing did, but all my code patches for US final SA worked on hardware...
16:57
so i will need to go through code mods one at a time, but i think prs compression should be redone just to be safe
17:00
i plan to test incrementally and try fixing as i go for code mods.. so getting to level select on boot, then loading in to levels
17:00
and hopefully i don't have to relocate one line of asm and then adjust a million relative pointers after
Avatar
the holdup on pushing the recompressed pvms for windy valley is i need to diagnose why they introduce random instability on flycast. its inconsistent and i can't get it in debugger.... PkR mentioned some of the textures were not using the correct mode according to spec for smaller dimension ones, so i will need to try those using SmallVQMipmaps instead of just VQMipmaps and hopefully this is enough.
17:24
the instability is sometimes if i rotate camera from the spawn point it kills flycast, while other times it just works
Avatar
I had a thought at work today if there's a way we can like, export this and the old threads so we can keep a public archive of all the discussion/work on fixing the autodemo we did, because at the moment it's all in the discord black hole here
1:49
and that's pretty shit
Avatar
there's a discord exporter but the exported data isn't really usable for public archive purposes
1:55
maybe we could do a write-up of sorts...
Avatar
what does the exporter output?
Avatar
it can export HTML, plain text or JSON. There's a frontend to view it in a Discord client-like interface
2:12
not entirely sure whether it can export specific threads
Avatar
personally I think the best way to archive all this info is to clean it up and make an article on SADocs
Avatar
I have a bunch of tumblr drafts where I tried to summarise it but I ended up having to cut more than I'd like, so I only got about halfway
Avatar
I can help clean some of that up while referencing the threads
5:36
It would also be awesome to have a page dedicated to screenshots listed by dates they appeared in magazines or online, from earliest to final. Maybe one for SADX as well
Avatar
When I get home I'll see if can start putting something together out of it then
Avatar
Avatar
PkR
It would also be awesome to have a page dedicated to screenshots listed by dates they appeared in magazines or online, from earliest to final. Maybe one for SADX as well
I still have a bunch of these organized from when I uploaded them to retro
18:32
18:35
Contains most of the JP Saturn/DC magazine stuff (iirc I think there's a few I didn't get due to being awkwardly placed/sized or not wanting to fill up retro's page with 10 frames from one shot in a cutscene)
18:35
as well as some pictures from the JP manual
18:37
Anyway I'm looking through my drafts now, I'm gonna see if I can make up the layout for a docs page tonight (maybe by stage)
Avatar
https://sadocs.unreliable.network/wiki/Sonic_Adventure_Autodemo/Restoration okay there's a start but I don't want to spend all night typing tonight lol. I'm not sure how to organize it without again cutting a bunch of discussion (like, the thread has multiple things at once going on), which I'd like available to be able show the process. tumblr does however let you publish posts privately (I think, lmk if these links expire) so here are the drafts I made: https://speeps-highway.tumblr.com/private/809194111198511104/tumblr_sfgzeJb0UgbDg8Scr?source=share https://speeps-highway.tumblr.com/private/809194145957675008/tumblr_qDngIM6d5KlFKY0c0?source=share https://speeps-highway.tumblr.com/private/809194161156833280/tumblr_qBastbzzyILXtuVTZ?source=share https://speeps-highway.tumblr.com/private/809194168441257985/tumblr_aI2bjmFOpOhROLQIo?source=share https://speeps-highway.tumblr.com/private/809194176027787264/tumblr_yMeZ9vkGM70V5bzQb?source=share One of the other problems I had with trying my own write up is I couldn't write much detail about what everyone else was doing lol, so multiple of us working on this thing would be much better anyway.
On the road to not having everything trapped on Discord, I want to talk about a project from last year (2024) where a few people and I got the broken levels in the SA1 Autodemo prototype working and...
After fixing Twinkle Park, Lost World was next. This stage had path objects, so getting the stage to load meant finding them first. Fortunately the data for these paths is the same as final, so I...
We were nearly done with Lost World, only a few things left. For some reason (Likely caused by incorrect pointer fixes) Act 3 would run horribly in Demul, so we had to use Flycast to run it. A lot of...
Avatar
I've read the Tumblr posts, they're all really good stuff but probably not something to be put onto the wiki... I think the info in the Tumblr posts still has a lot of value in terms of "who did what and when", as well as screenshots, but it's kinda too "raw" and chat log-like? If we want to preserve that, I guess the previous idea of backing up Discord threads is worth exploring after all.
5:42
For the wiki specifically, if we want to document how it was done, the wiki page you created is in a much better format.
Avatar
Avatar
Speeps
https://sadocs.unreliable.network/wiki/Sonic_Adventure_Autodemo/Restoration okay there's a start but I don't want to spend all night typing tonight lol. I'm not sure how to organize it without again cutting a bunch of discussion (like, the thread has multiple things at once going on), which I'd like available to be able show the process. tumblr does however let you publish posts privately (I think, lmk if these links expire) so here are the drafts I made: https://speeps-highway.tumblr.com/private/809194111198511104/tumblr_sfgzeJb0UgbDg8Scr?source=share https://speeps-highway.tumblr.com/private/809194145957675008/tumblr_qDngIM6d5KlFKY0c0?source=share https://speeps-highway.tumblr.com/private/809194161156833280/tumblr_qBastbzzyILXtuVTZ?source=share https://speeps-highway.tumblr.com/private/809194168441257985/tumblr_aI2bjmFOpOhROLQIo?source=share https://speeps-highway.tumblr.com/private/809194176027787264/tumblr_yMeZ9vkGM70V5bzQb?source=share One of the other problems I had with trying my own write up is I couldn't write much detail about what everyone else was doing lol, so multiple of us working on this thing would be much better anyway.
i love my occasional interludes with useful tooling or shitposts lol, you did good so far
Avatar
Okay then, let's do all 3 options lol. I'll continue writing the tumblr posts, the wiki can explain the technical stuff better and we can link a dump of the threads for download (which doesn't need to look pretty, just exist)
Avatar
Sounds good
Avatar
I think Windy Valley might end up being as big as all the parts I've done so far combined lol. I've written 3 posts on it so far, up to when E103 was getting fixed
Avatar
can i request you talk about the leftover cam data there.. at least in passing
18:33
its very rudimentary but makes the stage play out like its going from 2d to 3d when at least part of them are functioning
Avatar
Sure, link me the messages so I can figure out which part to fit it in
Avatar
Avatar
Speeps
I think Windy Valley might end up being as big as all the parts I've done so far combined lol. I've written 3 posts on it so far, up to when E103 was getting fixed
okay it had 4 parts, finally done with it though
21:47
god that was a lot, the wiki/dump being planned make these a lot easier to write though
Avatar
Casinopolis is next, but I'll do it tomorrow
Avatar
Avatar
Speeps
Sure, link me the messages so I can figure out which part to fit it in
1:26
casinopolis, please document the ninja lights for vertex colours. same for other stages that needed it... test stages. blockout mystic ruins...
👍🏻 1
Avatar
Avatar
Speeps
god that was a lot, the wiki/dump being planned make these a lot easier to write though
supercoolsonic 27.02.2026 1:30
Do you have a link to WV? I dunno how to navigate Tumblr and I can't find any of the AD posts on the main page
Avatar
sky chase, documenting that you looked at the wrong act init first could be fun
Avatar
Avatar
supercoolsonic
Do you have a link to WV? I dunno how to navigate Tumblr and I can't find any of the AD posts on the main page
Not posted yet
Avatar
Avatar
woof
sky chase, documenting that you looked at the wrong act init first could be fun
cause it dd work leading to using one of the unused test paths for the tornado
Avatar
supercoolsonic 27.02.2026 1:32
Oh okay, I misunderstood
Avatar
sorry, just getting back to this now
13:50
I'm going to put some general stuff on the wiki
Avatar
pls share footage of the restored levels if you have any (ideally not Youtube because we want this to be on our server to avoid another Dreamcastify situation)
Avatar
made some edits with initial info, @Speeps lemme know if you're ok with this or if you want me to restore some of the stuff I edited out (felt some of it would fit better for a separate page) (edited)
14:57
for some reason the wiki prohibits the .mp4 extension, will look into that later if nobody else fixes it by then
Avatar
Avatar
Speeps
Click to see attachment 🖼️
Sonic fan's first DMT
Avatar
sorry for a bit of spam, here are some videos i have on hand. need to look on my external hdd for some of the older ones
Avatar
very good, thx!
Avatar
these basically just show various snapshots of my development of enhancements or restoration work and in twinkle park's case, a bug because i used the wrong branch on round init code lol
15:31
its neat to keep that stuff documented though. i'll try to go through the external hdd today
Avatar
Avatar
PkR
made some edits with initial info, @Speeps lemme know if you're ok with this or if you want me to restore some of the stuff I edited out (felt some of it would fit better for a separate page) (edited)
yeah that's really good
Avatar
Also, if ya'll have anything to say about a specific stage or feature, just let me know and I'll quote you on the page in the section dedicated to that stage/aspect
1:51
Might be easier that way
Avatar
I edited the wiki's config file so you can upload .mp4 and .webm now
👍🏻 1
Avatar
If these can be embedded on tumblr that will be so good for me lol, I'll look when I get home
Avatar
Dunno about tumblr, but unfortunately embedding the player in wiki pages doesn't work. I tried installing an extension for an embedded player but it crashes the wiki...
Avatar
Damn. Still, I won't have to use google drive now
Exported 1 773 message(s)
Timezone: UTC+0