+Lloyd Mack The CPU is called "Central" because it is the center of where all processing occurs, but he used a funny way of interpreting how the words interact with each other to come to a different conclusion as to what they mean.
@@mrosskne ; glBegin/glEnd are deprecated OpenGL API functions introduced in 1.0, in 1992. In laymen's terms, you would push model data (specifically triangle vertices) in between the 'begin' and 'end' commands, one API call per-attribute. OpenGL would take this data and rasterize/draw it on the screen for you; ex. the Stanford Bunny model would require 200,000 API calls *per frame*. Since around OpenGL 2.0, you could instead load all this data ahead-of-time, and use 1 API call per frame to rasterize your loaded data. Anyway, some people still use it for hobby/fun projects. Since it's very straight-forward and easy. It will perform terribly on modern hardware though.
glBegin/glEnd are still useful to visualize 3d programming for beginners. But terrible on performance. Once you understand rasterization, z-depth, vertex math/linear algebra, etc; you can move onto things like GLSL, VBOs, etc
@@RasMatHam02 yeah. They don't get too public because they're worried they'll be shutdown because they don't follow blockbuster corp. policies, despite there likely not being one in existence anymore. Silly if you ask me
@@gavintantleff Ahh silly me. I actually meant to follow up on this comment because it turns out that this last blockbuster happens to be in a town that is less than an hour drive from me. The town is called Lincoln city. Small world lmao
My jaw dropped when it went into first person, I was expecting maybe a 3d sideview, Well done, absolutely astonishing! People like you make programming look like fine arts.
Hey Tom I just want to let you know that you are amazing and I love your work, your write up in Sigbovik 2016 for the fairness of snack re-ordering was a great read! I hope to see more videos from you soon!
I want you to know that I super appreciate that you make your source code available. I will be spending some time looking through some of it soon. The work you have done is pretty remarkable.
Its not real 3d. It used pallete and graphic tricks to give the illusion of the ground scrolling. The objects and enemies are just swapping sprites and swapping graphics to give the effect of moving closer.
suckerpinch Okay! Lol it's good to know an old favorite is back, can you make another Auto-game players, but for newer games? It would be cool to try it!
You could try putting a setting in the emulator for the "view type", with presets and maybe an advanced/custom section to tweak some variables later down the road. * Type 0 (or: "Regular 2D") - Default view * Type I (or: "Quake Pro") - Use for top-down games like Zelda * Type II (or: "Hallway") - Use for side-view games like Super Mario Bros. * Type III (or: "Pop-out Book") - Use for games like Tetris to add a 3D pop-out effect This setting would require the user to manually set the ideal view, but would be simple enough for a user that doesn't understand it, to use it effectively.
Every time I see you upload a video I am truly excited. And like always I was shocked to see what you made in this video. Just WOW! Good job Tom! Keep up the awesome work!
Absolutely love everything about this and what you are doing. Can't wait to see how you progress and what else you come up with. Thank you for share this ;c)
Tom way IS good! My second time now watching this video, (and a couple others, marathon style:p) and I just have to acknowledge your genius! Great work, love your stuff!
I originally felt like your humor is a bit too dry and hard for me to really appreciate, but I have to admit that I laughed heartily despite myself at the end. You've won me over and I hope to see more from you. Thanks for the video.
Cool unforeseen consequence, where the water is interpreted as a wall. It's an obstacle, yes, but not because it is physically in the way. Interesting.
You may run into difficulty in some of the warp-testing experiments with games that use "zip" type physics when you are within boundaries, such as Mega Man 1 and 2. Rather than stopping you from moving, the game engine will rapidly move your character in some direction or another until you no longer occupy those tiles. It might give some false positives about tile properties.
+Omnigamer Agreed. Very many games do this (though not necessarily as fast as MM). The idea is to test that the player is moving in accord with the controller, in the expected speed and direction. So far, ppu scroll and things like sub-pixel offsets have been the biggest obstacle here!
This video has made me realize that we have plenty of "super" Marios but we still haven't decided what is the "supest" Mario and then that begs the question are there any low tier "supe" Mario's? This is a question only you can answer Tom!
I know it's a few years old now, but the 'move the player around the screen and see whether they can move' part makes me wonder how this sort of emulator could cope with games where anything outside the normal playing field isn't solid. For example, in the Mario & Luigi series, you can walk through any object or wall you're not meant to reach in normal gameplay, since anything you can't touch normally doesn't have collision detection. Same likely goes with quite a few top down view games too. Would that make it difficult to get something like this working for those titles?
What about 'pretend 3d games', like Snake Rattle N Roll, Marble Madness or the likes? The walking almost behaves like zelda with a semi-top down fashion, but if you position the player sprite on a 'wall', it has gravity and falls.
Right, that's what caused a problem back when he was working on Learnfun/Playfun. The computer thought it was winning by jumping forward into a pit, since the value for the x position of Mario's sprite kept getting higher.
You haven't made a video in a long time so I was so excited to see you posted a new one! Please continue to create more content I love your work and your humor! :D
0:10 I think the correct term would be melt, smelt implies the removal of large amounts of impurities like what happens with the production of iron from iron ore.
I'm always amazed by your videos, simplified science stuff coding stuff, known as bugs real life interpretation of games a good commentary Keep having fun, this is amazing !
OMG, you demonstrates complicated concept really well. I wish professors in my school have half of your teaching ability. And really professional quick drawing
I just accidentally not watched this whole video because I saved it on a tab to watch after I finished programming something. And the tab started the video without me knowing.
No, people say Oot is "Zelder" than Legend of Zelda NES because it doesn't have nonsense puzzles where you're expected to use random items in arbitrary locations with genuinely no clues outside of a Nintendo Power, guidebook, or (nowadays) internet. Just because it was the first one doesn't make it an excellent timeless classic
I had a smile when you changed Mario's glasses to red and blue:D Nice one:) EDIT: I was wondering wich software do you use to draw and copy paste so fast? It seems amazing.
The footage is sped up my guy. He's not drawing in real time. He's reading a script over sped up footage - i genuinely dont know how you could confuse that for real time, the lines are clearly handmade but too fast to be hands, therefore it's clearly sped up
Wow impressed as always, maybe when you automatically determine if it's a top down game or side scoller you can make the controls auto adjust, so up is always forwards. BTW that ending with the chopsticks had me laughing quite a lot.
+Jam man Agreed, it's actually really easy to remap the controls, but I was running out of time super bad on this one! So I was prioritizing work on the new stuff like the autocamera/tile detection. Glad you liked it :)
we need to cryogenate your mind! you are too important for humanity ^_^ awesome ideas plus deep level of understanding and combining things. great stuff. congrats!
Wait wait guys I have an idea. If you can smelt down Zelda Cartridges and sell it for more Zelda Cartridges... that's an infinite money glitch but in real life 😳
Well, that's basically what I'm trying to accomplish by running some tests using the player. The difficulty is that whereas the graphics are done in a predictable way due to the way the NES graphics hardware works, the game physics are just implemented on the CPU however the programmers chose to do it. Trying to extract that in a general way directly from the code itself is pretty daunting, both for theoretical and practical issues. (At least, I don't have any ideas...)
Oh yeah! This is nice.. ! I guess you already done the research on this, but.. since you can set the sprite OAM page to whatever you want at any given time by writing to $4014 and $2003, your emulator should check for writes there to make sure what 'page' sprite data are fetched from. In some games, the 'page' is dynamically changed in order to (atleast seemingly) reduce flickering. I don't know if this is a big issue, but.. anyway. Awesome video as usual!
+mikaelmoizt Yeah, the address I wrote in that slide may have been deceptive. I detect the source OAMDMA page by just looking for a region of memory that is the same as the current sprite data and has proper alignment. That seems to work as well as tracking the DMA writes, and requires less modification of the emulator.