[HN Gopher] Shenmue (1999) reverse engineering reveals possible ...
       ___________________________________________________________________
        
       Shenmue (1999) reverse engineering reveals possible sun position
       oversight
        
       Author : BafS
       Score  : 89 points
       Date   : 2025-03-12 17:00 UTC (5 hours ago)
        
 (HTM) web link (wulinshu.com)
 (TXT) w3m dump (wulinshu.com)
        
       | yoyohello13 wrote:
       | Man I loved this game so much as a kid. I remember being
       | enthralled by opening the drawers, lol. I basically played it
       | once a year every year from ages 9 - 16. Some of the enchantment
       | was lost when I played the remaster recently, but still such a
       | great world they built.
        
         | AlecSchueler wrote:
         | What didn't work about the remaster or was it just a matter of
         | shattering the illusion of your memories?
         | 
         | I've been thinking about the game a lot since having my first
         | child last year. She often lifts things and rotates them in her
         | hand just to see and experience them. When I was a kid playing
         | Shenmue I always found it funny that they added that mechanic
         | because "who does that?" but now I feel a very deep
         | appreciation for it.
        
           | yoyohello13 wrote:
           | > What didn't work about the remaster or was it just a matter
           | of shattering the illusion of your memories?
           | 
           | At the time it was a unique, first of it's kind, game. Now
           | there have been a lot of advancements since then so I didn't
           | have the same "Wow" feelings of just being in the world. But
           | the nostalgia still hit me hard and it still has a special
           | place in my heart.
        
             | ethagnawl wrote:
             | I don't think applies to you but I imagine people playing
             | this series for the first time today probably think,
             | _What's so special? This feels just like every other open
             | world game_, even though it's really the other way around.
             | 
             | It's similar phenomenon to people hearing the Beatles or
             | the Rolling Stones (or any of the artists they ripped off
             | ...) with modern ears.
             | 
             | There's hope, though. I do think in both cases, it's
             | possible to develop an appreciation once you learn about
             | the lineage of a particular work.
        
         | soupfordummies wrote:
         | An all-timer for me as well! So much strange magic in there. No
         | game before or sense has quite that vibe. Maybe a product of it
         | coming out at just the right time.
         | 
         | "Do you remember... that day?"
         | 
         | "The day it snowed?"
         | 
         | NO! The day I got it right as it came out. A Friday after
         | school and I played for like 4 hours straight. Yes! I remember
         | THAT day!
        
           | WXLCKNO wrote:
           | There was something very special about it, I agree that no
           | game has made me feel that way since.
           | 
           | Half Life 2 did but in a different way.
           | 
           | Maybe when a game just leapfrogs what's been thought of as
           | cutting edge and you're so amazed that you forget that you're
           | playing a game.
           | 
           | I'm not sure if my fascination for Japan started with Shenmue
           | but it certainly grew from there. I was so happy to visit for
           | the first time last year.
        
           | mywittyname wrote:
           | I traded a bunch of PSX games for a Dreamcast just so I could
           | play Shenmue. My parents were pissed, but what a great game
           | (and great console).
        
         | VBprogrammer wrote:
         | I remember driving a forklift for hours!
        
           | fredrikholm wrote:
           | Me and my friend completed the game together as kids, and I
           | vividly remember us being stuck at this stage looking for
           | sailors (IIRC).
           | 
           | It accidentally imbued a lot class awareness into us; all we
           | wanted was to revenge our father but here we were, driving
           | boxes around hours and hours being paid pennies.
        
         | byproxy wrote:
         | Same! So satisfying to just explore the world they built, to
         | the point of me neglecting the actual story a lot of the time.
         | Hell, I think the only reason I advanced the story was to
         | unlock new dialog from the NPCs. I loved the whackiness of 'em.
         | 
         | Unfortunately, I think the lost enchantment is just a product
         | of aging. Things I were so enthusiastic about as a child
         | (videogames, particularly) no longer have the same appeal,
         | despite my best efforts to reignite some passion. That said, I
         | did put in a good chunk of playtime with the remaster and I was
         | still having fun with it. Though, not to completion as my
         | attention span for videogames has dwindled.
        
         | fredrikholm wrote:
         | It was so extremely ahead of its time.
         | 
         | A seemingly unlimited amount of content, nearly everything
         | could be interacted with, and the graphics were _very_ good
         | compared to other games in 1999. Heck, the y had _teeth_
         | meshes.
         | 
         | The background music for nearly every environment lives rent
         | free in my head some 20-odd years later.
        
       | AdmiralAsshat wrote:
       | Reminds me of a similar story about Blast Corps, specifically how
       | they implemented logic to correctly display apparent retrograde
       | motion vis-a-vis the orbit of Venus from the perspective of
       | Earth...all just for what basically amounts to a background
       | animation. [0]
       | 
       | [0] https://www.youtube.com/watch?v=FZ6eNJi02Qk
        
         | soupfordummies wrote:
         | Well that's ANOTHER oddball, semi-forgotten, great game!
        
           | toast0 wrote:
           | Nintendo and Rare (as "Xbox Game Studios") figured out how to
           | work together, and as of Feb 2024, you can play Blast Corps
           | on the Nintendo Switch Online Expansion Pack (along with a
           | bunch of other Rare games)
        
             | goosedragons wrote:
             | It's also on Xbox via Rare Replay. And you get to keep it.
        
         | rawling wrote:
         | Isn't this just... they made the planets have the correct orbit
         | times, and retrograde motion just drops out from that?
        
           | gs17 wrote:
           | Yeah, it's impressive that they bothered to animate them with
           | the correct ratio of periods, but it's not like they had to
           | add epicycles.
        
         | klysm wrote:
         | This is one of those things where it's like if you have to
         | program them to move, it's probably just easiest to program it
         | to be somewhat faithful instead of making up some other values.
        
           | mywittyname wrote:
           | To me it feels like one of those escapades we go on when we
           | want to focus on doing some "fun" work.
        
           | pipes wrote:
           | Someone in the YouTube comments claims he was an intern at
           | rare at the time and he was responsible for this. Who knows,
           | they could be lying.
        
       | wk_end wrote:
       | The tl;dr (though you should read!) of the "oversight" is that
       | there's a constant used to adjust the sun's position that's
       | seemingly based on latitude; in the first Shenmue, it's set to
       | 22, and in Shenmue II - which uses much of the same code - it's
       | set to 35. This is odd, because Shenmue I takes place at latitude
       | 35deg, and Shenmue II at 22deg - precisely the other way around.
       | 
       | If that's what's going on, it's sort of hard for me to wrap my
       | brain around how that might've happened. I could see them
       | "fixing" the Shenmue I code base and then forgetting to "unfix"
       | it for Shenmue II, but I can't - even knowing that there were
       | already plans for where the sequel would be set - come up with a
       | story for how they would've accidentally used Shenmue II's
       | latitude for the original game.
        
         | chickenzzzzu wrote:
         | Maybe the code was written at the early onset of the game, and
         | originally the locations were flip flopped in super early
         | development. Then later they decided on the locations that
         | became permanent, and nobody bothered to fix that part of the
         | code?
        
         | mook wrote:
         | Maybe they realized the bug early in Shenmue II's planning and
         | decided to just move the game to where the bugged value was
         | correct, not knowing that it was fixed in code in the mean
         | time.
         | 
         | (This has an approximately zero chance of being correct.)
        
         | boudin wrote:
         | I wonder if it could be linked to the original development on
         | the Sega Saturn, if I remember well the video of the prototype,
         | Shenmue on Saturn was spanning across both Shenmue 1 and 2
        
       | bbayles wrote:
       | Fantastic game!
       | 
       | The same development studio, Sega AM2, recently had a developer
       | reveal that he had put an Easter egg into Fighters Megamix for
       | Saturn. However, he mistakenly introduced a crash bug in it.
       | 
       | This set me off looking for the Easter egg. After a couple days
       | of reverse engineering, I finally found it [0]! I love looking
       | for this stuff.
       | 
       | [0] https://32bits.substack.com/p/bonus-fighters-megamix
        
       | kowlo wrote:
       | What a game. Lost hours to QTE Title (one of the games within the
       | game) https://www.youtube.com/watch?v=drdFhBKDvIQ
        
       | chiffre01 wrote:
       | Playing through Shenmue 1, they did a really good job capturing
       | the vibe of the area. Looking at random points in Yokosuka just
       | feel like Shenmue.
       | 
       | https://www.google.com/maps/@35.2781594,139.677597,3a,75y,27...
        
       | bitbasher wrote:
       | Ok, but do they know who Lan Di is?
        
       | TapamN wrote:
       | Shenmue is one of my favorite games. I did a bunch of Ghidra
       | reversing on the Dreamcast version last year, since I wanted to
       | add improvements to it. Like adding bilinear filtering on the sky
       | background, making time run a bit (faster so you can see time
       | specific events like Christmas/New Year more easily,) getting the
       | game to run without disc swapping on an ODE, and adding
       | antialiasing (which would require mipmaps to improve rendering
       | performance, which would require higher texture compression
       | levels to get them to fit, which would require a different
       | texture format that supports that...) I never got around to
       | actually implementing any of that, outside of doing some
       | experiments, like forcing bilinear on all 2D elements.
       | 
       | I don't think I found the sun/moon code (or more likely I did,
       | but didn't realize what exactly it was doing, Ghidra SH4 has
       | serious problems with floating point instructions making
       | following anything that uses them almost impossible) but I did
       | find most of the other time related code for updating the
       | clock/calendar.
       | 
       | One weird thing I found while doing that is about the in-game
       | watch. You always have a watch in your inventory, so you'd think
       | it would be hard coded in, but it's treated like any other item.
       | The game also has code to check if the watch is missing and add
       | it back in anyways. But the code that draws the on-screen clock
       | also checks if you don't have the watch, and won't draw the clock
       | if you don't have it (or at least part of the UI clock logic is
       | disabled, I haven't actually tried seeing what happens if you
       | don't have a watch to verify if my interpretation is correct).
       | 
       | On the PAL version, the code that checks for a missing watch is
       | at 0x0c180dc6 (that's where the code is loaded into memory,
       | subtract 0xc010000 to get the address in 1ST_READ.BIN), and I
       | think the code for drawing the clock (or at maybe it was just
       | updating the hands of the clock?) is at 0x0c18290a.
       | 
       | Dreamcast Shenmue has code to support other video modes, like
       | alternate resolutions (320x240p!), antialiasing, and 24/32 bit
       | color. They're a bit bugged, like when using antialiasing, the 2D
       | elements being squashed into the left half of the screen, and
       | some strange issue with the screen position for the RAMDAC being
       | setting incorrectly, causing the screen to vibrate left/right by
       | a pixel or two, but the 3D models were drawn correctly.
       | 
       | 24-bit color worked surprisingly well (even if the flag intended
       | to enable it didn't seem to work, and I had to force it
       | elsewhere.) I would have thought that having less video RAM free
       | would have caused serious problems, but the game just loaded
       | fewer NPCs. It was strange playing without dithering.
        
       | NooneAtAll3 wrote:
       | I wish the article spent 2 sentences _introducing_ wtf Shenmue is
        
       ___________________________________________________________________
       (page generated 2025-03-12 23:00 UTC)