CODING SECRETS! How TOY STORY'S 3D was programmed

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ม.ค. 2025

ความคิดเห็น • 621

  • @megacherv
    @megacherv 7 ปีที่แล้ว +73

    "If you look, the screen is mirrored, which gives us double the frame rate"
    Absolute filth, I love it

  • @fredbronze
    @fredbronze 7 ปีที่แล้ว +560

    Having played this game countless times, I had never noticed the screen was mirrored. To me, that is the best trick in this bag full of tricks.
    Would love to see sister episodes for stuff like the special stages in Sonic 3D and the rotating tower in Mickey Mania.

    • @Kazuo1G
      @Kazuo1G 7 ปีที่แล้ว +13

      Yeah, someone made a game for Macintosh (I forget which) and they used the same technique there. They mirrored the top/bottom of the rooms, and then drew the game objects over everything as another layer.

    • @JamesStocks
      @JamesStocks 7 ปีที่แล้ว +13

      It looks like there's at least some custom exceptions to the mirroring - towards the end of the video we see a wall texture with the alien toy on it

    • @Karanthaneos
      @Karanthaneos 7 ปีที่แล้ว +21

      James Stocks that's not a texture on a wall thats a sprite that just scales up and down depending on distance. And its always facing the player

    • @ZackBogucki
      @ZackBogucki 7 ปีที่แล้ว +3

      Not only that, the alien sprite is also completely horizontal and floating halfway between the floor and ceiling. So in this case, everything on-screen is still 100% mirrored horizontally.

    • @diribigal
      @diribigal 7 ปีที่แล้ว +12

      Zack, you're talking about a different thing than James and Karanthaneos. At 6:11 there's the potentially mirrored spinning thing. But at 6:07 there is a non-mirrored thing that looks like it could have been a wall texture, but wasn't.

  • @BlobVanDam
    @BlobVanDam 7 ปีที่แล้ว +612

    While assembly code is a bit beyond me, I loved the breakdown of how it was coded, and how it was optimized for the hardware. A very well put together video. Please do more!

    • @RiainRamblez
      @RiainRamblez 7 ปีที่แล้ว +5

      BlobVanDam holy shit! You're that LEGO Doctor Who guy! I love your stuff!

    • @Duif420
      @Duif420 7 ปีที่แล้ว +2

      BlobVanDam what the hell you're that guy who made that Sonic 3 3D video 7 years ago

    • @BlobVanDam
      @BlobVanDam 7 ปีที่แล้ว +7

      Riain, thanks! I don't expect to get recognized. :D

    • @BlobVanDam
      @BlobVanDam 7 ปีที่แล้ว +3

      SonicPigeon, have you had that video pop up in your recommendations lately like apparently everyone else? lol

    • @Duif420
      @Duif420 7 ปีที่แล้ว +4

      BlobVanDam no actually it was already a few years ago, but somehow it's a really memorable video

  • @gm112
    @gm112 7 ปีที่แล้ว +68

    Definitely wasn't expecting you to follow this video up with a literal tutorial on how to do raycasting on a Sega Genesis. This video is as impressive as the graphical effects it covers. Also, only 6 and a half minutes it took for you to explain these things too. That is awesome, man. Thank you for this :)

    • @3lH4ck3rC0mf0r7
      @3lH4ck3rC0mf0r7 6 ปีที่แล้ว +1

      gm112 The Genesis would take forever to do anything resembling raycasting. This is unlit 3D the likes of DOS and 16-bit Windows.

    • @Jono997
      @Jono997 6 ปีที่แล้ว +7

      @@3lH4ck3rC0mf0r7 He said raycasting, not raytracing.

  • @Number_055
    @Number_055 7 ปีที่แล้ว +377

    I miss the days where programmers had a responsibility to ensure that their code ran at a decent framerate. Nowadays it's just "Our game runs at 10fps? It's clearly your fault for not having a ten thousand dollar computer."

    • @sasdagreat8052
      @sasdagreat8052 7 ปีที่แล้ว +49

      Yeah, I'm pretty sure most of the games nowadays can be optimized to run much faster than they do.

    • @Caraxian
      @Caraxian 7 ปีที่แล้ว +67

      In those days you built a game to run on a certain config. Now there are hundreds of thousands of confide that games have to work on

    • @reNINTENDO
      @reNINTENDO 7 ปีที่แล้ว +41

      +Retro Frontier I only have the utmost respect for programmers who dealt with those limitations, but I wouldn't belittle the achievements of modern programmers to that degree. The hardware may have gotten considerably more powerful but what players demand of their games have also skyrocketed.
      Plus you mention Game Maker, a program I feel I'm an expert at but not one I'd consider myself a programmer from. GML isn't C++, which is actually used in nearly every modern video game. They share some similarities and lord knows both are easier than assembly, but pretending they are on the same difficulty level would be quite misleading. And even then while a terrible programmer could make a game in a few hours with Game Maker, an expert of the program could pull off things in the same amount of time that the other programmer wouldn't think Game Maker was even capable of.
      Also if you're aware of lower level modern programming languages like C and C++, you'll know that there are still many problems like the ones seen in these videos you still have to contend with. The ease of tackling them may be mitigated and the amount of memory you have to work with may sometimes seem infinite, but that doesn't mean having issues where you have to count specific numbers of bytes don't happen.

    • @moth.monster
      @moth.monster 7 ปีที่แล้ว +21

      If you look at Nintendo, you'll see this spirit is not gone. Just look at MK8 and BOTW on the Wii U. Nintendo always saves a buck on the hardware and spends it on making the software that much more efficient for their consoles!

    • @happyspaceinvader508
      @happyspaceinvader508 6 ปีที่แล้ว +18

      This is only the case in PC land. Console developers still have a responsibility to make sure their code runs at a decent framerate on the platform they're developing for. And, just like in the old days, they meet that challenge with varying diligence and success.

  • @dcvk6250
    @dcvk6250 7 ปีที่แล้ว +126

    Traveler's Tales truly is one of my favorite game companies just because of the stupid stuff they could do with the hardware

    • @justsomeone5314
      @justsomeone5314 4 ปีที่แล้ว +4

      I was really hyped for LEGO Worlds when I saw TT developed it.
      I'm not sure where it stands in technical achievement, but the usability and controls were very underwhelming. Company names stay, but the developers change.

    • @justsomeone5314
      @justsomeone5314 4 ปีที่แล้ว

      @
      I don't really know what's the power of any iPhone, but the better ventilation that the switch has allows it to work a lot harder.
      Although this may not be an objective observation; personally I don't find TT's LEGO-themed games all that complicated. Surely there's some serious math involved in optimizing which pieces need to get rendered, but it's rather simple compared to other AAA games, and the hardware is much more forgiving for various small inefficiencies that they could make. The only company that really amazed me lately for its runtime efficiency is Id.
      And again, as a PC user I was let-down by the controls and contents rather than image quality (graphics weren't that marvelous, but I don't care much for that - LEGO is all blocky anyway).
      Maybe I grew cynical of good-old companies after observing some of them going down dark paths. Maybe TT has incredibly talented programmers. For now I just think that their products are barely worth mentioning in conversations with my friends.

  • @ColoniaContraAtaca
    @ColoniaContraAtaca 7 ปีที่แล้ว +173

    more more!
    Thats Awesome!

    • @GeovanVenancio
      @GeovanVenancio 7 ปีที่แล้ว +8

      "Isso é muito AWESOME!"

    • @Thalesperes
      @Thalesperes 7 ปีที่แล้ว +4

      Que vídeo sensacional mano! Foda demais! Nunca tinha reparado que era espelhado a tela, eu sempre fale desse game em discussões de mega vs. Snes.

    • @gorin2178
      @gorin2178 7 ปีที่แล้ว +4

      Senhor virso. O senhor por aqui.

    • @gtPacheko
      @gtPacheko 7 ปีที่แล้ว +1

      Stop speaking Spanish

    • @GeovanVenancio
      @GeovanVenancio 7 ปีที่แล้ว +1

      Pacheko Spanish?? WTF

  • @QuestionBlockGaming
    @QuestionBlockGaming 7 ปีที่แล้ว +37

    What a fascinating video! I love seeing behind the scenes stuff like this! When you mentioned that the screen was mirrored, i had a jaw-dropping "OH MY GOD" moment! I had no idea, it didn't look mirrored and i never would have noticed had you not pointed it out!

  • @GarArtStudios
    @GarArtStudios 7 ปีที่แล้ว +9

    Wow, this was awesome! Great work, Jon. So glad you're sharing these super cool and innovative old tricks that were used on those old systems. Keep it up, sir. Great work. Would love to see more of this in the future. :)

  • @Ohverture
    @Ohverture 7 ปีที่แล้ว +15

    More! That was fabulous. I'm a 38 year old engineer, so I'm old enough to remember playing, and now smart enough to understand it - it's like the Goldilocks zone for enjoyment of this stuff. :)

  • @noahhall2302
    @noahhall2302 7 ปีที่แล้ว +87

    Currently blowing my mind

    • @Macboy0
      @Macboy0 7 ปีที่แล้ว

      Woah

  • @dreamer72
    @dreamer72 7 ปีที่แล้ว +85

    3:57 *franticly points* LEGO Star Wars UI Reference!

    • @FairPlay137
      @FairPlay137 7 ปีที่แล้ว +4

      JaCoB'S cLuB Glad I wasn't the only one who noticed it!

    • @theobserver4214
      @theobserver4214 6 ปีที่แล้ว +1

      JaCoB'S cLuB Now we just need someone to make the Gamehut logo a Lego figure

  • @schtive81
    @schtive81 7 ปีที่แล้ว +8

    "Write in the comments if you want more or less of this kind of thing."
    Who would want less? These videos are fantastic. Wow at the tricks you used to get this demo to run up to 58.4 fps! Especially that macro trick.
    Really would like to see more on Genesis Toy story if possible. The game is a technical marvel on the Genesis. You guys did some neat audio mixing tricks with that game too.

  • @terrythe2dmaniac71
    @terrythe2dmaniac71 7 ปีที่แล้ว +1

    Amazing video and it's super informative, absolutely if you get enough requests other than myself please publish more of these, the scene really needs more ppl like you my friend.

  • @CowabungaCat555
    @CowabungaCat555 7 ปีที่แล้ว +32

    I don't pretend to understand all of this but please do more stuff like this. Anything is nice, but this is great. Also if you have anything on Toy Story 2 you'd be pressing some of my oldest gaming nostalgia buttons. And if not, thanks anyway just for being part of the company that made it.

    • @battleonfan1
      @battleonfan1 7 ปีที่แล้ว +5

      FUCK YES I WANT TOY STORY 2 CONTENT.

    • @GoldenGrenadier
      @GoldenGrenadier 7 ปีที่แล้ว +2

      Me three. I want to know if there's some kind of story behind buzz losing his mind in the demo mode on Dreamcast.

    • @sparkside217
      @sparkside217 4 ปีที่แล้ว

      @@GoldenGrenadier What? What happened on the demo mode?

    • @GoldenGrenadier
      @GoldenGrenadier 4 ปีที่แล้ว

      @@sparkside217 On one of the demos, Buzz will Start running into a wall and the rest of the demo won't sync up.

  • @AURORAFIELDS
    @AURORAFIELDS 7 ปีที่แล้ว +108

    Gotta love unrolling loops. A friend made a generator, which generated 68k source files containing huge unrolled loops, to render each scanline of a scaled image at any scale factor (imperfectly, there were a few bugs), and I created the code that will scale vertically by skipping or repeating some lines, and it turns out, I can scale 4 images simultaneously where 1 image is generally large and 1 is very small, and DMA all the art in 30fps! And on top of that, because it was for a menu, and the code was just small enough, I was able to Kosinski compress the code (Actually, I also wonder what Kosinski compression would have been called back in the day?). It did create for some very awesome effect, and again show how much a beefy CPU can do.
    Also, really liked the high production value of the video, keep it up! More technical effect videos would be cool to see.

    • @TheSpace928
      @TheSpace928 7 ปีที่แล้ว +3

      Yeah, when writing shaders, I often unroll my loops and I remember when I started in scratch (many years ago) we would manually unroll loops for faster 3D rendering (though it was very primitive).

    • @thetriggeredone3461
      @thetriggeredone3461 2 ปีที่แล้ว

      @@TheSpace928 imagine if Sega used a 680020 processor this game would have looked even better

  • @solarflare9078
    @solarflare9078 7 ปีที่แล้ว +1

    Looking back into this, this is probably the best Coding Secrets video I have ever saw. The music, length, and best of all, the Lego HUD all combine to make this the most detailed and beautiful video on your channel! I would LOVE to see more of this editing (whenever possible)

  • @RFC3514
    @RFC3514 4 ปีที่แล้ว +1

    1:31 - Ultima Underworld did it first (in fact, John Carmack has mentioned that Wolfenstein 3D was inspired by an Ultima Underworld demo), although they didn't simplify it quite so much (it supported other types of deformation).

  • @greenpuffle
    @greenpuffle 7 ปีที่แล้ว +1

    This channel is gold. You're a genius, Jon! Often times for me, lack of funds for certain projects calls me to be more creative, but in this case, hardware limitations really pushed you guys to push the boundaries and create something amazing from very little. Very very impressed!

  • @georgebegbie6725
    @georgebegbie6725 4 ปีที่แล้ว

    Love the HUD that appears Jon :D

  • @LuigiXHero
    @LuigiXHero 7 ปีที่แล้ว +13

    This is a great video and can't wait to see more like it.

  • @dpaint
    @dpaint 7 ปีที่แล้ว

    More of this kind of content please. Great use of visuals to explain complex ideas simply. Well done.

  • @Jenovi
    @Jenovi 7 ปีที่แล้ว

    I really enjoyed this video. It makes me so happy to see in-depth content from the people who worked on these games.

  • @RiainRamblez
    @RiainRamblez 7 ปีที่แล้ว +6

    More of this would be really cool. Idk what exactly I want explained, but seeing this was really neat

  • @johnbewty
    @johnbewty 7 ปีที่แล้ว

    This is absolutely fascinating. I'm a developer in another industry and I find tales of 16-bit development to be interesting and actually... inspirational. You guys (the people that coded the games of my youth) are actual heroes to me.

  • @chrismurray9401
    @chrismurray9401 7 ปีที่แล้ว +1

    I really like how writing a huge amount of code instead of a loop, WAS the solution back then, as cartridge space and cycle times were much more important to consider. Now-a-days it's perfectly fine for code readability to cause a slight "performance" hit at run-time.
    Just goes to show how platform limitations really have an impact, and that modern clock speeds and memory are insanely higher now.
    Really enjoyed the video, would love to see some more of this "breakdown" type of video.

  • @BdR76
    @BdR76 7 ปีที่แล้ว +34

    4:30 Wow, actually I hadn't even noticed that it was mirrored. That is such a simple yet clever trick.
    But then there's still a non-symmetrical wall at 6:07 ..

    • @myg4youtuber697
      @myg4youtuber697 7 ปีที่แล้ว +26

      BdR76 The non-mirrored wall is not a wall, these toys are on the background layer

    • @Mizu2023
      @Mizu2023 2 ปีที่แล้ว

      it's just 1 wall that gets to draw its full texture
      wouldn't slowdown so much

  • @flashn00b
    @flashn00b 7 ปีที่แล้ว +6

    It still seems more impressive than the SNES version of the 3D section

  • @smmoom1212
    @smmoom1212 7 ปีที่แล้ว

    this stuff is just facinating!!! you sir are responsible for many of my favorite childhood games. I'm so glad you're willing to share this incredible insight into what you were thinking!

  • @gmwznhnt3
    @gmwznhnt3 7 ปีที่แล้ว

    Yo, this channel is THE hidden gem of TH-cam. Love these videos. Please keep it up!

  • @ChristopherEggison
    @ChristopherEggison 7 ปีที่แล้ว

    Fascinating video, please keep producing more. Really enjoy hearing about how effects were made and then optimised for older systems.

  • @ZVAARI
    @ZVAARI 7 ปีที่แล้ว

    It seems so simple when explained that way, but someone had to look at the issues they were facing and come up with all of these solutions. This is pretty crazy, I love how this channel presents its content.

  • @parabellum09
    @parabellum09 7 ปีที่แล้ว

    Have to say, amazing videos. Cannot believe I've not seen anything else like this before on youtube.
    I find it incredibly interesting, especially with the limitations of the technology at the time and you are very articulate and explain things so well. I haven't the foggiest how to write or understand code by I fully understand what you are doing and trying to achieve with your videos.
    Great work!

  • @CyTic5
    @CyTic5 7 ปีที่แล้ว

    PLEASE DO MORE! This is great at teaching valuable coding and logic usage! Keep up the Awesome work!

  • @PaulandoUK
    @PaulandoUK 7 ปีที่แล้ว

    Loved this. Always wondered how tricks like this were pulled off on 16-bit hardware. Blown away at how clever it all was. I don’t know any code, but his explained it in a way I could understand, so thank you!

  • @akapype
    @akapype 7 ปีที่แล้ว +3

    Super cool to have first-hand comments on programming techniques of that era ^_^
    Please keep up !_!

  • @bakaattack6186
    @bakaattack6186 7 ปีที่แล้ว

    It was one of my childhood favorites.
    That mirroring trick was AWSOME.
    Please, more of this!

  • @Introbulus
    @Introbulus 7 ปีที่แล้ว

    I LOVE this kind of thing!!!! I do like how some of your later videos break things down in a way that is easier to understand for non-programmers, but as a programmer this stuff just speaks to me in a wonderful way - these days, it's always about writing the least number of lines of code to accomplish things for ease of maintenance (It is for me, at least!) but it's fascinating to see how things used to be, when space and runtime were both extremely important and had to be managed when writing this stuff.

  • @DumDoDoor
    @DumDoDoor 7 ปีที่แล้ว

    This is getting better! Assembly code is something beyond my understanding but I love the secrets to achieve the desired effect.

  • @Pixoshiru
    @Pixoshiru 7 ปีที่แล้ว

    I'm discovering your channel and as a younger developer but raised by an Amiga 600, I'm craving these first-hand stories of 16-bit game development. Thanks a lot for sharing, hoping to see more!

  • @darkdoescosplays
    @darkdoescosplays 7 ปีที่แล้ว

    I'm currently learning Python as my first programming language, and although the code in this was at a much lower level it helped me understand why code is programmed a certain way at a higher level. This is brilliant stuff, thanks.

  • @sandakureva
    @sandakureva 2 ปีที่แล้ว

    I actually really enjoy these dedicated code walks. Assembly isn't something I use a whole lot of today, but it's always fascinating to learn about.

  • @Drerhu
    @Drerhu 6 ปีที่แล้ว

    It was one of the best fps sequences because the smooth moves and detail. Nice to see this!

  • @Thalesperes
    @Thalesperes 7 ปีที่แล้ว

    Woooow! So the screen was mirrored! Mindblow!!!!
    I loved so much this game as a kid! And I still do!! I always bring Toy Story when i'm talking about Genesis vs. Snes! Also, that mod player is amazing too! AMAZING video! I would love to see more about the development of this game! Subscribed!

  • @feosTAS
    @feosTAS 7 ปีที่แล้ว

    Oh god this is just brilliant!
    Early 3D was so tricky to implement that it wasn't possible without all sorts of hacking around. Even for PC during the years when Megadrive was around, Doom and System Shock were about as much as you could ever get, for 16-bit consoles it was even stricter.
    Also awesome job with revealing the trickery of game engines. There will always be interest in that kinda stuff just like people still keep releasing Megardive demos (Overdrive and others). And since code breakdowns of old games are so rare (I can only remember 1 dev for megadrive ever sharing his code - Chris Shrigley), such content is always unique and insanely valuable among us enthusiasts.
    There are also emulator developers who are always interested in insider info, so don't be afraid to dive as deep into code geek stuff as you can or wish, there will always be interest!
    Thanks for your channel, keep on kicking ass!

  • @nooodisaster
    @nooodisaster 7 ปีที่แล้ว

    WOW! Just discovered Coding Secrets, and I can't stop watching! Definitely please make more, it's so interesting to see this type of gaming history

  • @TorstenGrust
    @TorstenGrust 7 ปีที่แล้ว

    This throws me back sooooo many years. Thanks a lot, Jon. Please, if you have more of this, by all means post it! Cheers and thanks a lot!

  • @Emuraman
    @Emuraman 7 ปีที่แล้ว

    I actually never noticed that half of the screen is mirrored in order to save space, that IS pretty clever.

  • @nixel1324
    @nixel1324 7 ปีที่แล้ว

    More, please! As an IT student, it's really interesting to see what advanced code looks like, and what the reasoning behind it is.

  • @mikkusu
    @mikkusu 7 ปีที่แล้ว

    Definitely more of this please! I love this sort of thing along with all your other videos. Keep up the great work!

  • @SegaKid_V
    @SegaKid_V 7 ปีที่แล้ว

    More! I don't know about the technical side of games but watching your videos over and over helps me to understand more and more, a "byte" at a time, lol.😃

  • @kcowolf
    @kcowolf 7 ปีที่แล้ว

    As a programmer, I enjoy learning about how the games of my childhood actually worked under the hood. Thank you for sharing this.

  • @fen7662
    @fen7662 7 ปีที่แล้ว

    I love your videos. I'm not saying modern games don't use any kind of trickery to make things work, but you all had to be so much more inventive with such intense constraints. Nowdays a lot of publishers don't even require devs to compress the file size for digital downloads of console games. It's fascinating how much engineering goes into some effects we took for granted as just technological evolution as if it's something people didn't work on.

  • @mindtreat
    @mindtreat 7 ปีที่แล้ว

    You're like the Vsauce equivalent within gaming science, showing and telling in such a way that a lot of people understand the concept of what you're talking about. love your content, keep it up :)

  • @RemyJustice97
    @RemyJustice97 4 ปีที่แล้ว +1

    I like to speed up the video to 2x during the code segment, because it already makes no sense to me, and hearing it make no sense at double the speed is very funny to me

  • @fenderShreder
    @fenderShreder 7 ปีที่แล้ว +4

    this is the gaming stuff i really enjoy. it would be cool if you did some videos just rambling about your experience making a particular game, and any memorable coding challenges or other notable stuffs. like your opinion on Sonic 3D and if you think criticism is just misunderstanding the game or etc
    not too many (i've seen nobody else) genesis devs are on youtube, so this is a great channel you got going indeed

    • @feosTAS
      @feosTAS 7 ปีที่แล้ว +1

      I agree, there is a video of Genesis Aladdin developer playing his game while commenting all sorts of stuff about it, and a similar one with Symphony of the Night. It is always very enjoyable to watch such stuff.

    • @GordonAitchJay
      @GordonAitchJay 7 ปีที่แล้ว

      Agreed. The entire Dev Plays series by Double Fine is worth watching.

  • @TakenTooSeriously
    @TakenTooSeriously 7 ปีที่แล้ว

    Man, I take memory for granted on all my projects. This really gives some perspective.

  • @maxdelayer
    @maxdelayer 7 ปีที่แล้ว

    Holy hell I love that breakdown of optimization, really neat to hear about. Would love too see more practical stuff like this to spark the imagination

  • @seanloughran6714
    @seanloughran6714 7 ปีที่แล้ว

    More, definitely more of this. I'm loving the behind the scenes looks!

  • @SniperDiplomat
    @SniperDiplomat 4 ปีที่แล้ว

    Such a cool video. The part about the macro that generates thousands of lines of code just to bypass the cost of looping was crazy.

  • @GibranMalikRecordings
    @GibranMalikRecordings 6 ปีที่แล้ว

    i love this channel answering all my childhood wonders.

  • @tylerwerrin41
    @tylerwerrin41 7 ปีที่แล้ว

    this is great! very informative - always wondered how Toy Story pulled off so many graphical tricks that I had never seen on a Genesis before!

  • @DavidslvPT
    @DavidslvPT 7 ปีที่แล้ว

    Wow! It only took me 22 years to get to know how some parts of the Toy Story game were made :D. I must say that the first time I saw that level I was very confused of what to do, nothing in that level made sense to me for a while. What great memories this brings :D Thanks for sharing, please do more :)

  • @fromwithinuk
    @fromwithinuk 6 ปีที่แล้ว +2

    I remember seeing this when you'd first got it up and running, but that version hilariously had Mickey Mouse hands holding a minigun.

  • @PolkaTrapeze
    @PolkaTrapeze 6 ปีที่แล้ว

    I love that you show the assembly, this is really good information.

  • @Existensmaximum
    @Existensmaximum 7 ปีที่แล้ว

    I love it! It's very illuminating, seeing the actual assembly code! Super interesting!

  • @onlyeyeno
    @onlyeyeno 4 ปีที่แล้ว

    A sincere thanks for choosing to share Your knowledge, and taking the effort to make these videos in order i to do so.
    And I personally appreciate how You "get to the gist" and present the general principles in an easy and relatable way, it almost feels as if You could have figured it out Yourself ;)...
    Best regards

  • @Dirk1Steele
    @Dirk1Steele 7 ปีที่แล้ว

    Incredibly interesting. Please share more of these types of videos. Back in the day, there was certainly a bit of an obsession with games players about the special effects seen in games from yourselves, Treasure, Konami and other great coding houses that seemed to border almost on witch craft compared to what most developers put out.

  • @hrnekbezucha
    @hrnekbezucha 7 ปีที่แล้ว

    And that's when assembly is at its best. Good job man. Really impressive

  • @resistancefighter888
    @resistancefighter888 7 ปีที่แล้ว +5

    Please do more videos like this, it was very interesting!

  • @AesculapiusPiranha
    @AesculapiusPiranha 7 ปีที่แล้ว

    Amazing channel. I wish there were more 16 bit vets like you who did this kind of thing.

  • @JapaneseModernist
    @JapaneseModernist 7 ปีที่แล้ว

    Just found this channel out and I am loving it!

  • @MrGloverDude
    @MrGloverDude 7 ปีที่แล้ว

    Gosh it just incredible how yourself and other got around some of the hardware limitations of the time. It's remarkable

  • @FurEngel
    @FurEngel 7 ปีที่แล้ว

    This is what games in the 8bit/16bit era so much fun. The developers were always facing hardware limitations and had to come with hacks or other ingenious ways to overcome them. This led to great games, as the effort would really shine through.

  • @punkjediguy
    @punkjediguy 7 ปีที่แล้ว

    I'm loving this CODING SECRETS series!

  • @calumjohndiprose1809
    @calumjohndiprose1809 7 ปีที่แล้ว

    This channel is amazing, definitely going to help me! Thank you for the time to share your wisdom!

  • @MattFurniss
    @MattFurniss 7 ปีที่แล้ว +1

    More of this kind of thing. Love these videos!

  • @Chaofanatic
    @Chaofanatic 7 ปีที่แล้ว

    This was super interesting, I'd love to see more about this kind of stuff

  • @mo0nred
    @mo0nred 7 ปีที่แล้ว

    This kind of stuff is so amazing and interesting to me. I know nothing about coding but I feel like you wouldn't see things like this anymore with modern games because machines are so much more powerful and memory space isn't so low. Awesome to see the tricks in the background to make these techincal scenes with such limited technology of the time.

  • @Trance_Kitsune
    @Trance_Kitsune 7 ปีที่แล้ว

    This is really friggin awesome!! Love these vids since I had all these games and really enjoyed them. :)

  • @HasXXXInCrocs
    @HasXXXInCrocs 7 ปีที่แล้ว

    God, i love good ideas. I think all programmers can appreciate the mind fuck moments you have when idea like mirroring the image comes into play. Great video.

  • @Domarius64
    @Domarius64 7 ปีที่แล้ว

    I love your videos. So much. Crazy things don't seem so mystical anymore.

  • @AlsoMeowskivich
    @AlsoMeowskivich 7 ปีที่แล้ว

    Being a fresher programmer, I'd like to see more of this sort of thing. It always boggles my mind watching the coding of far more limited systems than the luxurious ones we have these days.

  • @JM-Games
    @JM-Games 4 ปีที่แล้ว

    That is insane, I had somewhat of an idea how the old 3D games used to work but I never knew each pixel was being manipulated individually and then it's mirrored too >.< . Mind blown.

  • @Siosal01
    @Siosal01 4 ปีที่แล้ว

    I loved this. I am a huge fan of the mega drive and seeing this is just mesmerising. Thanks so much.

  • @ahums16
    @ahums16 7 ปีที่แล้ว

    ABSOLUTELY MORE
    You break everything down nicely, please be as technical as you wish. This stuff is incredibly fascinating.

  • @osga21
    @osga21 7 ปีที่แล้ว

    Not only do I want more, I'd love it if you did a tutorial series on 6800 assembly, so we'd learn to make a simple game along with you from start to finish

  • @rexthesheep
    @rexthesheep 7 ปีที่แล้ว +1

    This is incredibly fascinating! Thank you for sharing.

  • @ControlAllDa1337
    @ControlAllDa1337 7 ปีที่แล้ว

    This kinda stuff makes you appreciate old school coders

  • @happyspaceinvader508
    @happyspaceinvader508 6 ปีที่แล้ว

    I find it far more interesting watching analyses of how developers managed to squeeze incredible visuals out of the 16-bit consoles than any "behind the scenes" of modern games.

  • @BuckeyeStormsProductions
    @BuckeyeStormsProductions 7 ปีที่แล้ว

    Subbed. It amazes me how you guys tweaked everything to push hardware to its limits when space and CUP cycles were at a premium.

  • @speedyink
    @speedyink 7 ปีที่แล้ว

    Holy crap, that was very interesting, and you explained it quite well. Well done!

  • @CosmicEternityCD
    @CosmicEternityCD 7 ปีที่แล้ว

    This was so cool! I feel like ASM makes a tad more sense to me now than it did before, haha. Definitely appreciate the rundown! Would love more techy stuff like this in the future!

  • @a1exh
    @a1exh 7 ปีที่แล้ว +9

    I'd be curious to understand how the "mirroring" was achieved. Presumably the CPU still has to program the DMA to perform the copy? Certainly a lot less CPU intensive than rendering the full screen.

    • @GameHut
      @GameHut  7 ปีที่แล้ว +14

      Mirroring was effectively free as the hardware allowed mirroring of any graphics already in VRAM

    • @a1exh
      @a1exh 7 ปีที่แล้ว +1

      Are we talking DMA VRAM copy? Using the source/destination address to implement the mirroring?

  • @blicky2blacky
    @blicky2blacky 7 ปีที่แล้ว

    LOve the break downs. Def do more. Informative, demystifying and interesting!

  • @MarkeyJester
    @MarkeyJester 7 ปีที่แล้ว +48

    I'm not one to argue much with your code, since you've made more of a career out of it than I have. But why did you not use the auto-increment with (a0)/(a1), I know the instances where you have to skip over pixels you couldn't, but for many instances you could've done, and as a result, you could've removed the add.l in majority of the cases. Additionally, you could've added "words" rather than "longs", since address registers sign extend the word to long-word on addition. It could've been faster, and the code could've been smaller =S
    The indexed version on the right at 5:05 could've been a series of (a0)+, since it's always incrementing by 1.
    Why did you guys not use auto incrementing?

    • @GameHut
      @GameHut  7 ปีที่แล้ว +52

      Markey Jester to make it more understandable I pretended that the screen was only 1 pixel wide. In reality it would have been 256 pixels wide so to get to the next line down you would have to skip 256 pixels, not just 1 so (a0)+ wouldn't help. But mostly it's because it's easier to follow for people who don't know specific 68000 assembler. Good ideas though with that specific code.

    • @MarkeyJester
      @MarkeyJester 7 ปีที่แล้ว +42

      By all means, I don't just have an understanding of 68k, I have a thorough understanding of the Mega Drive's VDP too. I was led to believe the same though, that you dumbed down the logic just to help explain it, in fact, I was told by a friend that this may be the case, in the end, she encouraged me to disassemble Toy Story to varify.
      Unfortunately, indeed, you could've optimised:
      ...etc...
      ROM:003E403E move.b 0(a0),0(a1)
      ROM:003E4044 move.b 1(a0),4(a1)
      ROM:003E404A move.b 2(a0),8(a1)
      ROM:003E4050 move.b 3(a0),$C(a1)
      ROM:003E4056 move.b 4(a0),$10(a1)
      ROM:003E405C move.b 5(a0),$14(a1)
      ROM:003E4062 move.b 6(a0),$18(a1)
      ROM:003E4068 move.b 7(a0),$1C(a1)
      ROM:003E406E move.b 8(a0),$20(a1)
      ROM:003E4074 move.b 9(a0),$24(a1)
      ...etc...
      This is related to the wall rendering, of which could've been auto-incremented, but wasn't. There was a copy of this below which did have the auto-increment, but the CPU ran through this code and other non-auto increments.
      I would like to apologise though, I didn't mean to come off so negative in my response, nor did I mean to put any negative impact to the work you guys put in, you did an outstanding job! Truely wonderful work, I was just quite shocked and taken off guard, I honestly didn't expect a lack of auto-increment in your code. That's all. I hope I haven't offended anyone, and if so, my apologies entirely...

    • @GameHut
      @GameHut  7 ปีที่แล้ว +56

      Markey Jester hey no problem. I'm guessing that is from the code that was macro generated. So it will have been a generalised macro to deal with any step-rate through the texture and screen to generate all the code. I guess we didn't optimise for the few single step cases, or it was too hard to code into the macro back then. I can't actually find the code that generated the macros so I can't see what it did. It would have never helped with the screen side of things, but with the texture side it would have. I'll have to go back and recode it now - it can be faster still!

    • @darknes4150
      @darknes4150 7 ปีที่แล้ว +6

      GameHut this is killing my brain and here I thought the genisis was simple or at least simpler no it's a fucking mess and a mad house
      also you guys did a great job on sonic r and I feel you don't get told that enough

    • @TheLoveMario
      @TheLoveMario 7 ปีที่แล้ว +24

      "here i thought the genisis was simple or at least simpler no it's a fucking mess and a mad house"
      This is assembly code. Every single CPU in existance uses some form of assembly code. If you think THIS is a "mad house", then everything else is as well. it's not just the genesis

  • @benetelrae
    @benetelrae 7 ปีที่แล้ว

    Mind blown. More of this content please. Best TH-cam follow in a while. Keep it up GH!

  • @LeoVaderBR
    @LeoVaderBR 7 ปีที่แล้ว

    I just loved this video! All these small details... wish I had programmed games that time...

  • @TotallyGoodatGames
    @TotallyGoodatGames 7 ปีที่แล้ว

    Love this video! A novice-level tutorial series on Genesis programming would be very appreciated!

  • @TheSpiffyNeoStar
    @TheSpiffyNeoStar 7 ปีที่แล้ว

    more of this kind of thing. this is neat!