Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
N. Harmonik wrote:
Hmmm, perhaps you need maps of all the stages.
I thought I'd take a crack at it. With my current, somewhat obvious method, it takes a very long time. First level, unfinished unkeyed map Let me know what you think. If maps would help, I shall make more.
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
Mitjitsu
He/Him
Banned User, Experienced player (532)
Joined: 4/24/2006
Posts: 2997
Its a descent attempt but its very hard to gage the depth given the fact its a 3D map.
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Yes maps would be very helpful, especially since I missed the earth shield route.
Homepage ☣ Retired
Active player (441)
Joined: 3/21/2006
Posts: 940
Location: Toronto, Canada
Any progress on this run?
My current project: Something mysterious (oooooh!) My username is all lower-case letters. Please get it right :(
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Nope. You know what having Finals and multiple TAS projects can do to you....
Homepage ☣ Retired
Joined: 6/20/2004
Posts: 292
Location: United Kingdom
comicalflop wrote:
Nope. You know what having Finals and multiple TAS projects can do to you....
Nice picture :P. Can't wait for this.
Mitjitsu
He/Him
Banned User, Experienced player (532)
Joined: 4/24/2006
Posts: 2997
Don't lose your stripes :D
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Sorry 'bout losing 'dem stripes for the last two months. But here ya go (youtube), this should make the wait worth it.
Homepage ☣ Retired
Joined: 2/26/2007
Posts: 1360
Location: Minnesota
Jesus christ man! And here I thought your first version of zone one was fast... how low can the flop go?
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
Joined: 6/20/2004
Posts: 292
Location: United Kingdom
Wow, brilliant. Keep going! I assume you still won't be getting the special stages?
N._Harmonik
She/Her
Joined: 8/27/2006
Posts: 502
Location: Canada
Yippee ki yi yay!
Why, oh, why do I even <i>try</i> to understand my own species?
Joined: 4/17/2004
Posts: 275
Wow, that was surprisingly awesome. Looking forward to further progress, and that's something that I thought I would never say about this game.
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
stickyman05 wrote:
how low can the flop go?
That's the lowest I believe. I took advantage of every slope, and improved Nitusja's route by 54 frames which was already faster than mine.
AdmiralJonB wrote:
I assume you still won't be getting the special stages?
Correct. Saturn version is better suited for that.
N. Harmonik wrote:
Yippee ki yi yay!
I love Futurama and Dr. Zoidberg! I'm still hoping senor Upthorn or Raiscan can provide good maps. Redoing all stages 3 times each does not sound happy to me.
Homepage ☣ Retired
Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
comicalflop wrote:
I'm still hoping senor Upthorn or Raiscan can provide good maps. Redoing all stages 3 times each does not sound happy to me.
Each map takes around 2-5 hours or so, depending on things such as my concentration and the size of the level. If neither you nor Upthorn manages to find an easier way to make them, I'll be happy to spend a bit of time making maps.
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
N._Harmonik
She/Her
Joined: 8/27/2006
Posts: 502
Location: Canada
comicalflop wrote:
stickyman05 wrote:
how low can the flop go?
That's the lowest I believe. I took advantage of every slope, and improved Nitusja's route by 54 frames which was already faster than mine.
We've heard that before!
Why, oh, why do I even <i>try</i> to understand my own species?
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
This is the third time I've done this stage, and even Nitsuja has looked over and made route improvements, which I fully optimized with sub pixel speed preserving and boosting off every available hill. I believe that's as low as it can go, and I'm ready to move to the next stage. Raiscan, some stages in the future are much bigger than this first one; as an example, the next stage's WR time is 1:13, there's 3 sets of Flickies instead of 2, and the map is, I'm guessing about twice as big as the first stage. (and about 33% of the stages in the game are about that size or possibly bigger.) I'm not knowledgeable enough to have MHS hack some 3d image maps from the ROM. So 2-5 hours of your time for each maps means, well, that you're beyond cool.
Homepage ☣ Retired
upthorn
He/Him
Emulator Coder, Active player (388)
Joined: 3/24/2006
Posts: 1802
Map hack is progressing, but is encountering minor technical difficulties. As you can see... The problem is, player position seems to factor into its decisions on what graphics to load for the camera. The other problem is that Camera operates on standard X Y axes, but player coordinates operate on 45 degree rotated XZ and ZX axes. Basically, Camera coordinates are relative to a cross in the shape of a + and player coordinates are relative to a cross in the shape of an X So fixing it so the player moves with the camera, in order to make it load the correct graphics, is not very easy.
How fleeting are all human passions compared with the massive continuity of ducks.
emu
Active player (380)
Joined: 1/2/2007
Posts: 188
Location: Germany, Munich
O_O That is already a very useful result. Can this tool only be used for sonic 3D blast, or also for other games?
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Would the player coordinates be useful for me to TAS with to know what is pixel-wise faster? I sort of have to work with pixel optimizations without knowing the exact pixel numbers... (for example, Sonic's running speed with speed shoes ranges from 99-103, and I jump and roll to try and preserve the 103 speed as much as possible, which doesn't seem to save frames in short distances.)
Homepage ☣ Retired
upthorn
He/Him
Emulator Coder, Active player (388)
Joined: 3/24/2006
Posts: 1802
Green Grove 1 Green Grove 2 Rusty Ruin 1 Rusty Ruin 2 Spring Stadium 1 Spring Stadium 2 Diamond Dust 1 Diamond Dust 2 Volcano Valley 1 Volcano Valley 2 Gene Gadget 1 Gene Gadget 2 Panic Puppet 1 Panic Puppet 2 Also:
comicalflop wrote:
Would the player coordinates be useful for me to TAS with to know what is pixel-wise faster? I sort of have to work with pixel optimizations without knowing the exact pixel numbers... (for example, Sonic's running speed with speed shoes ranges from 99-103, and I jump and roll to try and preserve the 103 speed as much as possible, which doesn't seem to save frames in short distances.)
Player X position (or position on the \ axis): FFC1EC (4 bytes unsigned) Player Y position (or position on the | axis): FFC1F0 (4 bytes unsigned) Player Z position (or position on the / axis): FFC1F4 (4 bytes unsigned) Player X Display position (or display position on the - axis): FFC21E (2 bytes unsigned) Player Y Display position (or display position on the | axis): FFC220 (2 bytes unsigned)
How fleeting are all human passions compared with the massive continuity of ducks.
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Dear Upthorn, You've just made a Flop very happy. I can see where the robots are (but I need a better method for zooming in to see the bigger picture), and I can even see where every slope is and if it's uphill or down quite plainly 3D wise, so I can plan out every hill boost. And the position addresses will be quite useful. Kudos.
Homepage ☣ Retired
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Just a reminder to everyone, I hate this game's guts now. Discontinued. There's maps, there's WR vids to follow, and I posted many discoveries of how to save time... meaning anyone can pick this up with little trouble. Feel free to talk with me if you want to or need info.
Homepage ☣ Retired
aji
Joined: 11/19/2014
Posts: 4
Location: IRC
So, almost 10 years later, I'm picking this game back up. Sonic 3D Blast was a big part of my childhood and I'm surprised there's still not any published runs for it, especially given the attention that other Sonic titles for the Genesis have gotten. I started about 2 weeks ago, and 1 week ago started comparing my work against Comicalflop's WIP. The GMV wouldn't play correctly in BizHawk without changes, but once I fixed up the menu navigation to sync up the first gameplay frame, the rest of the movie played fine. BizHawk reported that the ROM hash didn't match. I suspect this is because the GMV is so old that it doesn't have a ROM hash (or maybe BizHawk doesn't import that info? or maybe GMVs don't have it to begin with? or maybe it was a bad ROM?) so I'm chalking this up to changes in emulation accuracy over 10 years, especially since the desync was only during title and menu sequences. I couldn't find a ROM anywhere that either didn't have the hash mismatch warning or could play Comicalflop's work without any changes. I waited to make this post until I could at least match Comicalflop's Green Grove Act 1 time from scratch. At first I was 40 frames behind, then 9 frames behind, and now I'm 18 frames ahead! Final in-game time is :43, TSC record is :48. (Saving ~15 frames should bring the in-game timer to :42, but I'm at a loss for where I'd find those. I might try at it, but I don't want to spend forever optimizing this level.) Video: https://www.youtube.com/watch?v=R2Lku0m5kZA Comparison video: https://www.youtube.com/watch?v=OOpa4hL1T-A It's going to be tough going forward without a reference like this! Surprisingly, there's not a lot of new information about this game. There's a disassembly by Sik that I can't read because I don't have IDA Pro, but there are some text files with memory addresses that made setting up RAM watches a bit easier. There's also better maps and better world records, but that's about all I can find. Some additional things I've learned: Physics:
  • Sonic's motion seems controlled primarily by a "direction" variable (2 bytes at 0xff2c18) with values like 0x100 to mean directly left, 0x400 meaning up-right, etc. The direction is modulo 0x800, and changes by 0x40 in the direction the D-pad is pressed. This means, for example, a complete U-turn takes 16 frames. It seems the "force" felt by Sonic in this direction is only affected by whether any D-pad buttons are being pressed, but I haven't tried to confirm this. I made a basic HUD to show this direction and the "actual" direction indicated by Sonic's speed, since certain parts of the physics seem to be controlled by their difference.
  • The "direction" variable tends to stick at the 8 main directions. That means if you're facing 0x400 (up-right) and press any of right, down-right, or down for 1 frame, Sonic will rotate toward 0x500 over 4 frames. However, you can cause Sonic to move in between these directions by quickly alternating the held direction. For example, if facing 0x400, you can hold right for 3 frames until the direction is 0x4c0, then alternate between holding up-right and right to cause the direction to flip between 0x480 and 0x4c0, which will cause Sonic to move up and slightly to the right. Sonic can still reach his top speeds when moving this way. This trick is really annoying to pull off sometimes, due to lag frames, but can help when optimizing routes. This doesn't work with spin dashing, unfortunately.
  • Since the force on Sonic seems to be affected by whether D-pad buttons are held, but the direction of this force is controlled solely by the direction variable, it's possible to more finely control Sonic's motion during direction changes by letting go of D-pad buttons in situations where the direction variable is otherwise changing on its own. For example, there are a variety of ways to U-turn from 0x100 to 0x500 (left to right). One is to simply hold right. The most minimal option is to only press right every 4 frames to trigger each 45 degree turn. In all cases, the U-turn still requires 16 frames to complete, but Sonic's final position and speed can be manipulated slightly.
Rules:
  • Flickies can only be caught 30 frames (depending on how you count) after popping the robot. This doesn't matter a lot of the time, since catching a Flicky optimally isn't always the best choice for the overall route.
  • When exiting an area after freeing all the Flickies, it's a small handful of frames faster to spin dash and U-turn into a skid to quickly reduce speed to trigger the transition.
  • Lag frames are counted toward the level timer. I haven't found a good way to control lag yet, but I think the main source of lag is loading new sections of the screen.
And no glitches yet, but I have a hunch it might be possible to get Sonic off-screen where objects aren't yet loaded, like in other Sonic games. (You can get to some pretty high speeds by falling far enough.)
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
I followed their instructions and here's the asm file, but it has no names, so I dunno how helpful it will be. The names are stored separately in text files I guess? https://yadi.sk/d/Q6v29ihz3AHQFM
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Talk about coincidences... I was talking to WST on Skype about teaming up to TAS this game a few days ago. I have been examining how Sonic moves, as well as browsing the disassembly for RAM addresses. I am still trying to locate where collisions are handled, or where the flickies are located, but basic RAM addresses for Sonic are easy to come by; I will post them soon (not at my computer at the moment). I am interested in helping; if not with outright TASing (because last I checked I still could not use BizHawk in Linux), at least with information. Since I can peruse the disassembly without difficulty, feel free to ask questions and I will try to find answers.
Marzo Junior