In this episode of Coding Secrets I explain how the game Red Zone achieved full screen rotation on the SEGA Genesis
Пікірлер: 676
@indifferentone89914 жыл бұрын
Imagine being a Red Zone developers and you have to wait 26 years for somebody to really appreciate your work.
@sandakureva3 жыл бұрын
That's how a lot of clever coding goes, tbf.
@aislingoda60263 жыл бұрын
@PXLTRON it's been 30 years, you can let it go
@otischance91443 жыл бұрын
@Sonny Henry Yea, I've been using Flixzone for since november myself =)
@westinbenton70473 жыл бұрын
@Sonny Henry Yea, have been using Flixzone for months myself :)
@bangerbangerbro3 жыл бұрын
@NALTO Recently I've only heard people appreciate tricks on the mega drive?
@zorksox4 жыл бұрын
I thought the cost line was going to be very rudimentary polygons. Everything was tile manipulation. Crazy.
@NeoTechni4 жыл бұрын
I thought so too. Then I remembered how old systems didn't really have all-points-accessible graphics.
@KuraIthys4 жыл бұрын
@@NeoTechni That's neither here nor there. It's possible to create approximations of it. Some systems are worse for it than others. The SNES and Amiga both have bitplane based graphics, which are a pain. (on SNES in the worst case you might have to modify 8 bytes of graphics memory to set a single pixel) Of course, on anything under 256 colour graphics you're also dealing with multiple pixels per byte when your CPU almost certainly doesn't efficiently handle less than 8 bits at a time... Many early systems did have actual bitmap modes though. The Atari 8 bit microcomputers have 1.5 (aka 2 shades of the same colour), 4, and 16 colour bitmap modes. Unfortunately when dealing with a 1.79 mhz 8 bit cpu with no multiply/divide circuitry, doing graphics on the CPU is not a good idea. With a 160x192 resolution you've got 30,720 pixels to manipulate, and you can't even clear the screen for free. While a screen clear lets you clear 4 pixels at once due to how they are arranged in memory, you'd have to write to 7680 bytes just to clear the screen. 1.79 mhz cpu. Absolute best case 4 cycles per instruction (in practice probably 8 or more even for something as trivial as clearing a screen) Best case you can write 447,500 pixels worth of data in a second (and that's assuming you have no game logic and no complex graphics. I wrote a line drawing algorithm for this CPU and it came to about 200 cycles per pixel drawn). At 60 frames per second that's 7458 bytes. In short, you can only just barely clear the entire screen each frame, much less do anything much more complex. Sure you can lower the framerate, use cleverer tricks, but it's still not going to impress anyone. Now, a 7.16 mhz 68000 cpu sounds better, but realistically, it's not that much better. My own ballpark estimates based on this led me to the conclusion that to start doing non-trivial graphical tasks with a CPU without major compromises would require a 30-40 mhz CPU, give or take. And sure enough, that's roughly the kind of clock speeds where the PC started having games like Doom, Descent, Magic Carpet and so on... You can find workarounds for weird graphics formats. But it's much harder to do anything when your CPU just isn't that powerful, relatively speaking...
@NeoTechni4 жыл бұрын
@@KuraIthys it is totally relevant because APA graphics are the easiest way to do it. Anything else requires a bunch of more complex/impressive hoops, such as the ones in the video.
@shinyhappyrem87284 жыл бұрын
@@KuraIthys: SNES CPU can go up to ~3.58 MHz. (The SA-1 runs at 10.74 MHz and includes bitplane conversion functions. The Super FX GSU runs at the full 21.477 MHz.)
@Hamdad4 жыл бұрын
Same, Genesis has some crude polygon games, even some relatively quick, smooth ones like Kawasaki Superbike Challenge. So I figured we were looking at a flat plane of polygons, or some similar vector drawing scheme. Which it kind of is, behind the scenes, it just uses the vectors to figure out which tiles to use. Wizardry.
@n1112547893 жыл бұрын
Just in case you forgot there are number of people who absolutely love your content. We may not comment or engage enough but you really are the only person who shares the information and it helps boost creativity on hardware even today. I think it's a great asset to have these videos posted and I'm sure you have a busy life outside of KZfaq but hopefully you never feel it's a waste of time for making these videos because the audience isn't massive. This is content you cannot get elsewhere and your a fantastic wealth of knowledge. Keep up the good work and hope you are staying safe during the pandemic. Take care
@TheSektorz4 жыл бұрын
What impressed ME is that I immediately recognized that the music for this game was made by Jesper Kyd. It sounds much like the music he produced for the Hitman games, and the one heard in the Batman and Robin Genesis game! I immediately recognized that it was him, and I've never played or researched this game before. What a legend.
@ECone904 жыл бұрын
Jesper used the same melody for Sub-Terrania, Red Zone and Blood Money
@johanjohan58814 жыл бұрын
ok!
@poble4 жыл бұрын
@@johanjohan5881 shut the fuck up
@thisisaloadofbarnacles9214 жыл бұрын
@@poble Probably a 12 year old, those shits ruined KZfaq
@thisisaloadofbarnacles9214 жыл бұрын
@_ Pobert-Eii _ ok!
@BologneyT3 жыл бұрын
This video helped me understand something I always knew: Old games were cool and endearing because of the artistic trickery they clearly had to resort to to achieve the effects they were going for. I just couldn't grasp how deep the rabbit hole went.
@miaouew4 жыл бұрын
This really does look like a 32x game
@DrButthugger4 жыл бұрын
The animation at 5:20 explaining the tile stepping process is awesome, thank you for making that. That really helped me understand what is going on behind the scenes.
@allanfagnercs4 жыл бұрын
One game that really amazed me back then was Gunstar Heroes. There are some cool effects there. Any chance to break it down?
@patsmalling4 жыл бұрын
Theres a ton of mid or per scanline something something video memory raster effect 7.3 Liter 8 cylinder voodoo going on. The fact these people did most of this stuff in assembly blows my mind.
@nio1074 жыл бұрын
x2
@GaryColeman704 жыл бұрын
Great game. I’d like to see a video on this too.
@graphicsgod4 жыл бұрын
Same as Contra Hard Corps..
@wakadaemon71914 жыл бұрын
@@graphicsgod DEFINITELY HARD CORPS
@sikthehedgehog4 жыл бұрын
Now do the indoors parts, that's where most of the fun is with all the layer trickery (also I think the indoors wall renderer may be related to the outdoors water renderer)
@johanjohan58814 жыл бұрын
ok!
@pacsonic90004 жыл бұрын
They probably used the same technique used for Toy Story's 3D effect during gameplay for the shelves.
@ExtremeWreck3 жыл бұрын
@@pacsonic9000 Actually it's a little more complex than that.
@tulsatrash2 жыл бұрын
Ooooooo.
@geeko3214 жыл бұрын
I would love to see how that FMV is done in a future video!
@johanjohan58814 жыл бұрын
ok!
@mariannmariann20524 жыл бұрын
Probably the same way as the Sonic 3D Blast intro.
@NoahNCopeland4 жыл бұрын
they def using the two-tone coloring to their advantage
@MizoxNG4 жыл бұрын
pretty sure it's the same as the 3d blast logo/game over fmvs
@MaxwelThuThu4 жыл бұрын
Might be surprising, but the FMV scenes are being made in the same way as the water in-game! You can see all the different 8x8 shapes in Vram. There's a LOT of them.
@The_Mister_E4 жыл бұрын
Red Zone is such a hidden gem... You could tell those devs put in their 110%. Also, the musics you played sounds different than the ones in the release version! Is there a dump of that beta?
@lawrencefitzgerald47444 жыл бұрын
The were many later Genesis games that were wonderful games. Unfortunately, by then the 16-bit era was coming to a close, and everyone was drooling at 32-bit.
@jillcrungus4 жыл бұрын
The developers released the proto as public domain, you can grab it here: www.zophar.net/pdroms/genesis/hardwired.html
@johanjohan58814 жыл бұрын
ok!
@patsmalling4 жыл бұрын
@@jillcrungus This is awesome! Thanks for the heads up. 💪🏿🙃🤙🏿
@zyrobs4 жыл бұрын
The same teams did Scorcher and AMOK on the Sega Saturn. AMOK even uses music from Red Zone. Those games would be worth a video too, Scorcher double rotating backgrounds (one of the few games to do so), 15bit colour, and transparent polygons, while AMOK runs a full voxel engine and some hidden top-down levels. In fact AMOK started as a 32x title and you can see it on the legendary 32x Zyrinx demotape.
@JohnGabrielUk4 жыл бұрын
You know a game is going to have something clever under the hood when the intro brags about all the cool stuff they were able to pull off. Would love to see some more videos about this one!
@pyk_4 жыл бұрын
When you show what the video ram looks like, I think it would look better if you turned off the image interpolation so we can more easily see the actual pixels.
@AzuriteCoast4 жыл бұрын
+
@patsmalling4 жыл бұрын
yes. this.
@TheMalMeninga4 жыл бұрын
The music's back! Hurrah!
@johanjohan58814 жыл бұрын
ok!
@graealex4 жыл бұрын
I wished for it to be gone, and enjoyed the video without it, as it's such a sad tune, and quite a short loop. Too short to continuously play during a ten minute video.
@nagitokomaeda32373 жыл бұрын
Yeah. Was happy to see it.
@conradddd4 жыл бұрын
Red Zone is in my genesis top 5, so glad to find someone finally analyzing its technical achievements, thanks!
@johanjohan58814 жыл бұрын
ok!
@stopthelawsuits4 жыл бұрын
Having 0 experience in this field at all I can firmly verify that "ya that's probably how they did it idk tho"
@Face2theScr33n3 жыл бұрын
Sounds like a plan, then. Off we go to build some sick games with all we've just learned! Are ya with me?
@Prizm443 жыл бұрын
I don't think enough time was taken to explain and illustrate the concepts properly. He tends to go over some stuff too quickly. I understand the small layered sprites, but the tile mapping explanation lost me.
@SioxerNikita11 ай бұрын
@@Prizm44Might be a two year old comment... but.. You want a 2 hour in depth tutorial? Because if so... Those exist...
@emmanueloverrated4 жыл бұрын
I would have loved to have an insight on how those line border tiles are picked. This is where the magic happens from this rotation effect. The algorithm must be pretty impressive.
@MurderMostFowl4 жыл бұрын
I second this. I can think of several cocktail napkin methods but there’s got to be one out there that is the fastest. ( maybe AND it against every tile and see which one has the largest value aka largest common overlap?? )
@AltimaNEO4 жыл бұрын
They must be proud
@michaelbuckers4 жыл бұрын
Subtract the angle of object from the angle of camera, you get apparent angle on screen - it's an index of your sprite (you store them incrementally angle-wise). You use the same step counter from tile rotation routine to position the sprite accounting for camera rotation.
@emmanueloverrated3 жыл бұрын
@@michaelbuckers there are several tile of the same angle with different fill ratio. The water rotating plane is like a grid of 8x8 bitmaps. Also, calculating angles on a 8mhz mc68000 having only integer arithmetic for 40-50 tiles 30 times per second appears to be costly. The game is not only doing rendering, there's a lot of action going on etc... The trick is probably clever as shit, like a weird DDA algo or something like that using a look up table. I'm pretty curious about it.
@michaelbuckers3 жыл бұрын
@@emmanueloverrated It's a lookup table yes. You can always compute pretty accurate values but rarely does it ever makes practical sense.
@curtmack4 жыл бұрын
The geometry of the foreground layer is so simple, and screen moves so slowly; I wonder if they could have implemented a "true" polygon renderer in VRAM by calculating exactly which pixels need to be changed and only writing those, rather than redraw the whole thing every time.
@KuraIthys4 жыл бұрын
Might've been possible. However it's far from trivial calculating which pixels need updating. Since polygon rendering in this context is CPU bound in general, you'd need to consider if the calculations to work out what needs updating are simple enough to outweigh just updating the whole thing directly....
@Domarius644 жыл бұрын
It's a good bet many have already tried and failed. The rush for 3D was on for everyone.
@michaelbuckers4 жыл бұрын
Not with ~7 MHz of single core processing power & less than 0.5 IPC - even if you dedicate the entire processor to just rotating the screen it'll be ~140 CPU clock cycles per pixel, it's not nearly enough. At least there wasn't RAM lag like on today's machines which causes CPU to idle 90% of the time unless you use special memory access techniques (flat gapless arrays etc). Same story with GPU, it's so easy to stall it's ridiculous, you feed it commands at full speed and it still idles 70% of the time. You need to avoid switching shaders models textures etc at all costs - you must use megatextures, one-size-fits-all shaders, baked static geometry literally everywhere. Don't get me even started on the drivers, they're so finicky, in order to get good shader speed you must find some random way to trigger driver's fast pathway (the driver was coded to trigger for some AAA game shaders which otherwise run godawfully slow because the devs are lazy and/or idiots).
@raccoon6813 жыл бұрын
I remember suggesting this game in the comments a while back. Just blown away by the game rotation and how that was even possible on a sega genesis. thank you Coding Secrets.
@CannedHockey4 жыл бұрын
Your videos bring me a nostalgic joy I can not define. Please do not stop!
@Domarius644 жыл бұрын
I watched a video on how amazing this game looked for a Megadrive game, but this was an amazing breakdown. Never ever would I have imagined they were using tiles with different angles to draw the water edge.
@TaiJason374 жыл бұрын
You made Puggsy? That game was awesome and extremely hard sometimes. Love it!
@arcticridge4 жыл бұрын
the wizard is back! please talk about Vectorman!
@johanjohan58814 жыл бұрын
ok!
@graphicsgod4 жыл бұрын
Yes!
@KungKras3 жыл бұрын
Isn't vectorman just pre-rendered sprites using 3D modelling software and then treated just as regular sprites in the megadrive hardware?
@zyrobs2 жыл бұрын
@@KungKras No, that was Donkey Kong Country. Vectorman used tweened orb sprites to create super smooth animation. It also mixed in a lot of differently rotate sprites, and a metric ton of crazy raster effects (every other level has some unique special effect, starting as soon as the SEGA logo, it's nuts. And there are prototypes around which show that they had to cut a bunch of even more impressive stuff cut from the game).
@adsilcott4 жыл бұрын
I remember "discovering" the Puggsy pseudo rotation trick back in the day when I was messing around with sprite blitting. That full screen rotation is genius though -- I love the breakdown and detective work you do on these games!
@clockworksaint4 жыл бұрын
I would love a Puggsy video. I fondly remember it as one of the more wonderfully odd games of my childhood and it came to mind immediately when you mentioned large rotation effects. I was pleasantly surprised when you just casually mentioned you made it!
@KieferSkunk3 жыл бұрын
The way the tile map is stepped and composed each frame is extremely similar to the final pass section of the technique used in the SNES's Mode 7, with the biggest difference being that the Genesis is doing it all in software. SNES Mode 7 does a lot of calculations ahead of reading the background layer to determine the bounds of its quadrilateral viewport, then basically just transforms each screen pixel to the corresponding location in the quad and reads the color of the background pixel at that position. The line/angle-step routine demonstrated in this video is basically a very simplified version of that.
@MrMusicGuy19803 жыл бұрын
This is why I love old school tech, limited and yet not limited.
@El_Cheapo4 жыл бұрын
Never stop being amazed by these videos explaining coding tricks for technologies from 80s/90s.
@ForeverMan4 жыл бұрын
Thank you for bringing the old music back...
@blaskkaffe4 жыл бұрын
Finally some new content. I hated to have to rewatch all the re-uploads of all your old videos, well actually I really enjoyed to watch them again... Keep the amazing videos coming! This is one of my top channels on youtube, I really hope you will continue making this style of videos for a long time!
@oliverstaunton104 жыл бұрын
I second that, I loved binge watching all of the videos when I first found this channel. Jon's voice with that background music is just so satisfying, and it is truly amazing to see what devs managed to pull off back in the day to get around hardware limitations
@marcuslinkert11394 жыл бұрын
Most of the programmers were from the Amiga demo scene, so no surprise on the ingenuity. Also the music was done by Jesper Kyd.. another Amiga demo scene legend. quite cool!
@shinjinanahara3 жыл бұрын
Brilliant! Love your videos. So informative.
@Peter_1986 Жыл бұрын
"Contra - Hard Corps" has a lot of cool graphical effects, and a lot of them look exactly like Mode 7; like for example the highway fight against Dead-Eye Joe, and the plane fight in the sky.
@azazelleblack9 ай бұрын
Old video, but I have to comment that to me, the really impressive part of Red Zone is that it does all this at a fairly consistent and smooth 30 FPS. A lot of games did crazy 3D stuff in the 4th generation of game consoles, but to do this they frequently had to drop the framerate to 20, 18, 15, 12, even 10 FPS. Stunt Race FX comes to mind. At a glance, HardWired/Red Zone looks just as 3D as those games most of the time, yet runs so much more smoothly.
@EdgyNumber13 жыл бұрын
I just LOVE this man's break downs of these Genesis games. As a consumer going from Alex Kidd: Enchanted Castle to advanced games like this show just how much gets learnt about a piece of console hardware throughout it's like cycle. Its like the programmers really learnt how to bend the console to their will. Fascinating stuff!!
@tc-bladeofgrass67194 жыл бұрын
Your videos are among the most informative on KZfaq, at least in the gaming genre. Another great video, thank you so much for taking the time to explain these things.
@johannesparkmann38994 жыл бұрын
Good to hear Chris is back for the music again
@Squirrelsquid4 жыл бұрын
I love the music in Red Zone. IMO it sounds quite unique, and "danceable" if that makes sense.
@Damaniel33 жыл бұрын
A lot of the music produced by demoscene coders (including the team that made this game) sounds like that - they may have done work on the Amiga (another 68k based system) and some of that knowledge carried over.
@proplayer6822 жыл бұрын
I love this kind of videos when people find solutions in limited hardware
@SullySadface4 жыл бұрын
Wow, it's pretty crazy to think about all the sorta hacky stuff they had to do back in the day to make these effects on that hardware.
@johanjohan58814 жыл бұрын
ok!
@embodyingocean1894 жыл бұрын
yeah indeed, and I'm kinda sad I never got to experience coding that, nowadays it's so easy
@xyzzy-dv6te4 жыл бұрын
@@embodyingocean189 you can still code for old systems like Genesis, but it isn't too practical
@johanjohan58814 жыл бұрын
@DPAD-FTW Yako
@embodyingocean1894 жыл бұрын
@@xyzzy-dv6te I've been trying to figure out how to code java games for the nokia button phones, don't know where to start as there are no tutorials
@jeffven88473 жыл бұрын
Me and my brother just LOVED pugsy, i remember showing all my friends the amazing intro to the game. Back in the 16bit era this really was mindblowing. Thank you for helping to code a piece of my childhood 😊
@AcornElectron4 жыл бұрын
Nowhere near enough subs. Keep up the good work fella. Love these retrospective breakdowns.
@scratchthatoffmylist96353 жыл бұрын
This channel demonstrates again and again that amazing coding tricks don't have anything to do with good gameplay.
@karlsmith4270Ай бұрын
Scavenger's Zyrinx team are techinical geniuses back then with finding ways into pushing the Genesis hardware. Here's the fun fact. The game first started out as a prototype which is a racing game called Super Spin. It used the same top-down engine as the chopper sections in Red Zone. The racing prototype that I mentioned is actually dumped online for us to enjoy which is awesome.
@superluig1643 жыл бұрын
Now that you showed us the crazy pallette, I can see the jitteriness in the subdued pallette, while I couldn't before.
@jessragan67142 жыл бұрын
The magic trick is always just a little less amazing when you learn how the woman in the box is sawed in half. Still, it feels like a whole lot of work went into making this effect, and I have to give Zyrinx credit for that at least.
@aghost25853 жыл бұрын
One thing I'd really love to see you cover is comparing the code from an early-get Genesis games to a late-gen game by the same/overlapping devs (e.g. Sonic 1 vs Sonic 3 or Leander vs 3D Blast for your own games) and showing the changes in the general tricks and how that improvement in understanding allowed better graphics, performance, and such.
@indy004 жыл бұрын
Excellent video as always. Would love to see you take a crack at what is happening under the hood on Xeno Crisis, especially with the soundtrack as I think they used a similar technique to the one used in Toy Story. It would be really cool to see what old techniques were still valid and what new twists a developer was able to come up with for a mega drive game made in 2018.
@tarotcard03714 жыл бұрын
7:41 These cylindrical towers are using a familiar trick. It's at least similar to the one you used in Toy Story to get the effect of depth on certain objects.
@MaxwelThuThu4 жыл бұрын
That's just 2 circles a top of another.
@TorutheRedFox4 жыл бұрын
yeah those are just two circles with parallax
@ntompkins3 жыл бұрын
I played a lot of Sub-Terrania as a kid after Gamepro gave it straight 5’s. I listened to about 2 bars of the background BGM on this video and immediately knew it was the same composer, along with Batman and Robin of course. This developer was on another level in the early 90s. I don’t remember this one though!
@KRAFTWERK2K64 жыл бұрын
Gotta say this is STILL impressive today and shows you what "Parallax Scrolling" is capable of.
@MaxAnnoying2 жыл бұрын
i am in awe in each of your videos... i cannot believe i am complaining about how Media Molecule Dreams is treating me bad sometimes :)
@HybridAngelZero3 жыл бұрын
Totally in awe, here. The programming tricks on display are simply brilliant!
@christopherthibeault75024 жыл бұрын
That was an impressive means of short-cutting rotation and play into the Genesis' strength--its processor. It is far from perfect, but it is at least foolproof.
@ohnoitschris3 жыл бұрын
That game looks amazing for its time
@SyphistPrime4 жыл бұрын
This is really clever and leads to an impressive looking game. It's amazing how you can make things look like they have a 3d engine while still being 2d.
@caiolopezcomz4 жыл бұрын
Awesome video. Thank you very much for lowering the music. It is now much clearer to hear you. I really like that you managed to keep it as your opening theme too. I guess everybody is happy now!
@Goto10Gaming4 жыл бұрын
Incredible sprite work, love it. Thank you for all of the fascinating videos.
@miketate34454 жыл бұрын
I love these videos so much. This is exactly the stuff I'm curious about.
@freddiejohnson61373 жыл бұрын
There is so much tricky going on using different techniques on top of each other to pull it off. Quite impressive really that different devs were coming up with completely different things to pull of all sorts of things with hardware of the day. It is my favourite generation for that as even the most obscure games can do things no other games can at times.
@SpartanX3603 жыл бұрын
Zyrinx is a well known developer bringing out awesome game and pushing the Genesis/megadrive graphics to its limits like Subterraria and Red Zone, oh don’t forget their awesome soundtracks! Genesis DOES have “mode 7”.
@georgef5514 жыл бұрын
Not quite Mode-7, where the SNES (designed many years later) can just rotate (and scale) naturally. However, this was very clever trickery to make it appear it can do what it can't, naturally. There is a video of someone who made F-Zero with a hard-coded "Mode-7" display, but they doubled the pixels horizontally to get the smoothness the SNES can do on it's own. Still impressive.
@em00k4 жыл бұрын
Another great video. These are especially interesting as we have a tilemap mode on the new ZX Next and these methods are very doable on a z80 at 28mhz.
@Nikku42114 жыл бұрын
Oh, cool, you're here. I really liked your 'Remember When' MOD song. Was it originally made as .MOD or .XM?
@em00k4 жыл бұрын
Nikku4211 Thanks - yeah originally a MOD written on the Amiga.
@MikeC-ps1tc2 жыл бұрын
Wow this was impressive, I had to watch this a few times to understand the coding secrets! Good stuff sir!
@mrnuage4 жыл бұрын
I'm amazed at how far developper could go back in the day to achieve this kind of effect without having it implemented in the hardware. Some years ago, I was impressed to discover Contra 3 stored a lot of sprites angles to achieve the "rotating mode 7" boss while you could rotate yourself but this is another level. Storing tiles of different shapes just to draw the different shapes at different angles is as close as having fully calculated rotation on the 68k as possible.
@netherza4 жыл бұрын
That rotating sega logo is pretty dope.
@jasonb49543 жыл бұрын
Just found your channel subbing because you gave me so much fun as a kid thanks for your work
@Xplasma14 жыл бұрын
YES! This game! Yes! I really want to know how they pulled off that FMV at the beginning, because it really looks like black polygons! I believe a few Sega genesis games actually had polygons, like Cyber Cop. Though I guess it could be really clever sprite work like in Toy Story.
@maskedmonocle19914 жыл бұрын
i don't think the genesis was physically capable of rendering real polygons, it was probably the same technique in doom
@Xplasma14 жыл бұрын
@@maskedmonocle1991 Cyber Cop had a real 3D face in it. It was very low poly, but it moved around in 3D. Also Hard Drivin was ported to the Sega genesis. The framerate was awful, but that was 3D racer.
@MurderMostFowl4 жыл бұрын
The B&W in the intro is just animation... there’s no polygons to it. It’s likely done with color cycling and tile animation. This channel did a demo of it before. You can get what looks like fluid motion from preplotting your animation this way
@winj3r4 жыл бұрын
I played this game back in the day and was amazed at these graphical effects. Gameplay was also good.
@angryanonymous23 жыл бұрын
Never ever heard of that game. Absolutely stunning work.
@HE3603 жыл бұрын
I think that this game came around a time when Sega was trying very hard to keep up with the Super Nintendo whose system was always flexing its ability to easily do scaling, rotation and mode 7 techniques through games like Pilot Wings and Contra 3 Wars. Now, THAT was when we started seeing more games trying to do the scaling and rotation on the Sega Genesis.
@TheRealMespotine3 жыл бұрын
I would like to see a series of breakdown on how platformers achieved scrolling. How did early games do it on Genesis and why was Sonic so much faster in comparison. Seeing how the knowledge and experience evolved over the Genesis's life span would be a valuable lesson in coding.
@TheReimecker3 жыл бұрын
I love your channels please do more awesome coding secrets !!!
@joao-dk2qn4 жыл бұрын
please do more videos about those effects! this game has some incredible techniques to make rotation, FMV and other things
@MistuhHamp4 жыл бұрын
Great video! Always love seeing these
@rootbeer6663 жыл бұрын
Those devs were Amiga sceners, and there was a 1993 Amiga game called Seek and Destroy that featured top-down full-screen rotation. You can say that great minds think alike, but you can also say that great minds know what to copy. B-)
@Odinoian3 жыл бұрын
Great game! And Great video! Reminds me of the Micro Mages 40kb guide video, which is super interesting
@rayredondo81604 жыл бұрын
Well done! This makes a lot of sense; I may have to try it out for some of my games to see how it looks on modern hardware. Only needing to do something on a macro level to get a good-looking effect seems to be the basis of many retro games, and they usually pulled it off quite well! Keep it up with the awesome videos; I'll be there for the next one!
@artthefarter4 жыл бұрын
Holy shit i am so happy i found this channel because it is truly amazing. Thank you for the videos.
@leowatley3 жыл бұрын
dude, that music is on point. kickass.
@LumpyMoose3 жыл бұрын
I love this channel... I’ve been trying to research how to code good 2.5d roads for driving games. Really need to break down how it works well on very low powered hardware. There are quite a few techniques, I’d love a video that explores this.
@PulledPurk3 жыл бұрын
The second area in Vectorman is very impressive
@DehnusNorder4 жыл бұрын
One argument about "Mode 7" on SNES though, sprites don't rotate there either. An SNES can rotate 1 background, different helper ICs (Often extra Processors on cart) could split that up (like in Mario Kart where they achieved 2 by updating it halfway through the screen) but that's it.
@KuraIthys4 жыл бұрын
You don't need a second CPU to do that. You can update it every single scanline with the base hardware. In fact, that's kind of the point. That perspective effect everyone associates with mode 7 only works because the mode 7 effect is being adjusted dynamically every single scanline. HDMA exists for this purpose, to automate it. Many, MANY games did splitscreen based effects without any additional hardware. F-Zero is a mode 1 display up to about 20% down the screen then switches to mode 7. Contra does this in reverse at some point with a mode 7 display on the top half and a mode 1 display on the bottom. The reason Mario Kart uses a co-processor is to deal with placing scaled sprites into the environment in believable positions and handling the calculation of 8 moving players and a bunch of objects in the world. (DSP-1 is purpose-built to perform 3d transformations, such as perspective projection, scaling, etc.) You don't need that to split a mode 7 display; You need it to calculate placement of dozens of moving points in 3d space. Of course, mode 7 has been used for 'sprites' repeatedly; It's a trick, but at the end of the day sprites and backgrounds are a relatively arbitrary division. If you use your sprites to represent a background, you can use mode 7 to represent a large scaling and rotating sprite. Mode 7 rotates and scales a single background, but all the parameters for rotation, scaling, and positioning can be altered per scanline in base hardware. Perspective works by adjusting the scaling factor every scanline. As long as you don't alter the actual scaling, you can pre-compute these factors once and use HDMA to adjust it automatically. (HDMA exists for the sole purpose of automating effects that happen on a per scanline basis) You wanna change graphics modes 8 times on a single screen? That's something you can pre-calculate on SNES, and send the pre-calculated list to the PPU. Wanna do really complex rotating textured 3d effects using mode 7? As long as those effects align to horizontal scanlines, you can precompute the whole thing and simply use HDMA to copy the lists each frame to make that effect happen. The expansion chips are doing calculations that the standard CPU would struggle with. However, the splitscreen effect is trivial. You want a 4 way horizontal splitscreen on SNES? Completely trivial. 4 sets of mode 7? Mode 7 + mode 6 + mode 3? No problem. Easy. What isn't easy is creating a 2 player racing game with 8 racers, and dozens of environmental objects that scale based on their position relative to the camera and have to remain in contact with the ground the whole time...
@retropolis14 жыл бұрын
Look at Street Racer on SNES. In 4 Player Mode it zooms and rotates 4 layers at once at 60fps without any helping Co-processor
@StaticTV804 жыл бұрын
Who cares the snes is a slow RPG console
@retropolis14 жыл бұрын
@@StaticTV80 Well, obviously more people cared about the SNES than about the Genesis. 50 Million SNES sold vs 30 Million Genesis... And it is not as if the SNES had no action games
@StaticTV804 жыл бұрын
@@retropolis1 you know why the snes sold more because it was family friendly and censored the Genesis was too muture
@pabloanania74154 жыл бұрын
Great work as always Jon! The terrain gradient is very subtle... I think that the game looks good even without it. Anyways, I recommend you to try the Exodus emulator, is a charm to debug and reverse engineer those kind of effects. Thanks for posting!
@CodingSecrets4 жыл бұрын
I used Exodus to change the palette to highlight the tiles
@entity80193 жыл бұрын
Subbed. Didn't realise you were of Traveller's Tales origin. Still waiting on Tigranda! ;)
@RicardoMenson3 жыл бұрын
Music is by Jesper Kyd, just as cool as what he did for adventures of batman and robin.
@LuftmanPlay4 жыл бұрын
I love that you start to analyze other games then your own as well :)
@Alhedgehog4 жыл бұрын
Awesome stuff! I love seeing a pro analyze stuff like this. Love these videos!
@abdullaal-naimi90753 жыл бұрын
That sweet Jesper Kyd music is very recognizable, but those graphics though...
@unfunk4 жыл бұрын
Thank you for this. It's simultaneously enlightening and disappointing to see my favourite games from back in the day picked apart. Disappointing in that it's like having my childhood dreams of coding magic being revealed as all smoke and mirrors 😆
@goosetrousers4 жыл бұрын
After watching videos from Jon, you should believe that all coding is just smoke and mirrors.
@theboy1814 жыл бұрын
Never heard of this game, and now I feel like I missed out!
@CatGoneCrazy3 жыл бұрын
It always felt a little sinister to me at the time - it didn't have any of Desert Strike's lighter feel. Very dark, violent and this weird graphical frippery that looked like nothing else on the system. But the intro video was the most amazing thing I ever saw my Mega Drive do ...though I didn't have Sonic 3D ;)
@Nico-rr5co4 жыл бұрын
As a kid that was obsessed with Jungle Strike I'm surprised I never knew of this game. Impressive!
@txray34094 жыл бұрын
That's because it's not a good game. It's a 'techdemo' made into a game. All eye candy no substance.
@WibblyWizard2 жыл бұрын
Extremely nice tecnhniques, tip of the hat to you Sir.
@alexisread53254 жыл бұрын
Nice writeup John! TBH I thought the coastline was polygons similar to Operation Harrier on the Atari ST and Amiga. The tile cycling was done quite a bit on the NES with the mmc3 but this takes it to a new level! Interestingly, you can get a good mode7 effect with simple line scrolling as in Vectorman level 2, and I'm guessing that the fzero demo uses a proper mode7 transform - there was a also a demo on the ST that did it (Rumpelkammer)
@Cassandra_Johnson3 жыл бұрын
For each fundamental non-rotated coast line tile (any tile they rotate, really), they could have a lookup table precalculated on the screen rotation, trading rom space for cpu, so it may not be as bad as you think on the CPU.
@greensun13342 жыл бұрын
Very good explanation! 👍🏻
@marcuskobel65623 жыл бұрын
Hi mr coding secrets! Would you be able to talk about The development tools you used back in the day to develop games on mega drive, saturn and other platforms you developed for? Was it on a PC dev kit? How was it? How did you push games to the console? Which language did you use? Did you have language reference? How did you debug your games? Etc... Very daily practical routines and tools. Thank you!
@AndreLuiz-ec3tl4 жыл бұрын
Much better without the BG music and the explanation is very clear. Thanks a lot!
@Sinistar19834 жыл бұрын
Dynamite heady is definitely a show stopper, maybe you could look at how the voice sampling was so clear
@celadonsound10013 жыл бұрын
Will there be more content coming soon? I only discovered your stuff a couple of months ago and fell in love with it. I would love to see more!!