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