Monday, May 8, 2017

How powerful is the Wii U

nintendo trash

The Wii U has been regarded as one of the least powerful consoles of 2013. Outperformed by its counterparts, the Xbox 360 and PS3 (Later Xbox One and PS$, after their 2013 release), the Wii U really had no place in the market, with it's awkward controller concept, and lack of portability (Which if it were portable, it would have sold a lot better). But how powerful is the Wii U, and what makes it "one of the least powerful consoles"? 

The Wii U is powered by an SoC (System on a Chip). In it contains 2 GB RAM (1 GB dedicated to system processes, 1 GB usable for games), as well as a graphics chip, and a processor chip. 

The processor chip, dubbed Espresso, packs three cores, and is based on the IBM PowerPC 750 series chips, the same PowerPC CPU in the PowerMac G3 from 1999. Except the PowerMac G3 only had one PowerPC core, where as the Wii U has three. One could argue that developers could take advantage of these three cores to optimize games so they run faster. However, the individual cores are extremely slow, so slow that it would make Core 2 and even Pentium NetBurst look like next-generation hardware. To get an idea of how "powerful" a NetBurst Pentium 4 is, here's a video of the Pentium 4 running Battlefield 1.

However, the Wii U's saving grace, the one thing that prevents it from fading into obscurity and dealing a critical blow to Nintendo, is the graphics chip. The graphics chip, dubbed Latte, packs an ATI GX1, the same GX1 in the original Wii and the Gamecube. Not very impressive, but it contains another GPU: The GX2. Unlike the GX1, the GX2 is based on "modern" ATI/AMD architecture. While it's unknown what GPU it's based on, rumors say it's placed between the Radeon HD 4600 series, and the Radeon HD 4700 Series.

Because of the power of Nintendo + ATI's GX2 chip, developers have been able to port many third-party titles, such as Black Ops 2, WATCH_DOGS, Minecraft, etc over to the Wii U. However, out of all the other factors that brought down the Wii U, the two main things that killed it were the extremely slow PowerPC cores and 1GB usable RAM, and the release of the Nintendo Switch, which features a modified Tegra X1 chip (4 GB RAM, GPU similar to GT 920MX, 4x Cortex A57 primary, 4x Cortex A53 secondary).

Overall, the Wii U isn't the fastest system, but it is faster than most people think it is.

Citations:

"Wii U Tech Specs" IGN, Ziff Davis LLC. 28 Feb. 2014. http://www.ign.com/wikis/wii-u/Wii_U_Tech_Specs

"Nvidia Tegra X1" Specout, Graphiq Inc. http://system-on-a-chip.specout.com/l/1165/Nvidia-Tegra-X1

[Edited] Green Ham Gaming. "How Powerful is the Wii U" 30 Apr, 2017 https://www.youtube.com/watch?v=JPqWqbjOIJc


Monday, April 24, 2017

Why the Geforce 256 is a cool graphics card.

Image result for nvidia nv10 gpu
Geforce 256, circa 1999. Picture by Pete Mason,
http://hexus.net/tech/news/graphics/28468-nvidia-tsmc
-ship-billionth-geforce-gpu/
ur pc is bad

The year is 1999. 3d-accelerated graphics cards are all the rage. Everywhere you looked, there would be a new graphics card listing, offering "fluid 3d motion with support for the new and advanced DirectX 6 API". But games still required a fast CPU to do most of the in-game visual effects such as Transform & Lighting. nVidia was about to change that. October, 1999, nVidia releases the GeForce 256. Unlike big name graphics cards, like the 3dfx Voodoo lineup, the GeForce 256 renders most of the in-game visual effects, taking a lot of work off the CPU, making it the world's first "GPU". And it does this by integrating the Transform & Lighting engine with the graphics card. This meant that you could pair the 256 with a low-budget CPU, like the Celeron processors, and get better performance than a graphics card with no dedicated T&L engine paired with a high-end Pentium processor. If that wasn't revolutionary enough, nVidia also released a 256 with DDR memory, making it several times faster than other competing graphics cards. Hardware T&L wasn't a big deal during the 90's, with only a few games supporting it. But today, every 3d game you see takes advantage of GPU-side T&L. The GeForce 256 did so well that it received driver support up until 2005, the final drivers offering support for DirectX 9 and OpenGL 1.5. If not for nVidia, and their revolutionary GeForce 256 card, just how different would pc games and hardware be? 

Friday, March 3, 2017

Read this if you have a Chromebook.

my chromebook is faster than your $10000 pc

So when I develop, I use an application called Code::Blocks which is an IDE (Integrated Development Environment) for Windows, OS X, or Linux based machines. But not everyone reading this blog are using a Windows, OS X, or Linux machine. They might be using Chromebooks, iPhones, Android devices, etc. If that's the case for you, then you're in luck. There is a website called Remote Interview that has an online C++ IDE. It works almost as well as Code::Blocks.

So to set it up, click on the option that says "NEW PAD", as shown below:


Next, click on the area that says "C#" and change it to "C++".


Next, click on the button next to autocomplete and click it once.


Now, you should have a working online development suite. And even better, you have access to multiple languages like C#, Java, Python, etc.

That;s all I have for now.

Thursday, March 2, 2017

Getting good at: C++ | #10 - enumerated constants, integers and more typedef

10 - typedef int our; our number = 1;

     Hows it goin bros, coat hanger here. Today, we're going to use typedef. As I said in the last post, typedef is used to substitute keywords in integers. "How is this useful?", you ask. To show you why, I will have to go over another integer type, the unsigned integer.

     Now, an unsigned integer is basically a whole number integer, meaning it cannot store a negative value. Along with that, there is the long integer and the short integer. A long integer can store values from -2 billion to 2 billion, and a short integer can store values from -32768 to 32767. All of the possible integer types can be found here. Now, if you were writing a program that uses a lot of unsigned long integers, you would probably get tired of writing unsigned long number = 32000;, and that's where ya boi typedef comes in. So instead of typing unsigned long number 32000;, you can just type something like ulo number 32000;

     Last post, I talked about constants, read-only variables. Now, I'm going to talk about enumerated constants. This is basically a way to store multiple constants on one line. To declare it, you have to write something like this: enum name { N=1, A=3, M=5, E=8 };. If you don't set the variables to anything, then the beginning variable is set to zero, and the variable to the right of it is the left + 1.

That's all I have for this post. 

Wednesday, February 15, 2017

Getting good at: C++ | #9 - Constants and typedef

#9 - typedef long post

What's goin on everyone, this is FitMC. Today, we're going to learn about constants. Constants are essentially read-only variables, meaning that once you define them, you can't change them later in the program without modifying the value in the constant. You'll see what I mean later on.

There are a couple ways you can define a constant. 

1. Type #define CONSTANTNAME 1, where CONSTANTNAME is the name of your constant, and 1 is the value. You do not have to capitalize your constant name when defining it like this, but I recommend that you do for the sake of readability.

2. In any function, type const int net = 100;. The constant doesn't always have to be an integer. For instance, something like this will work: 
const char when_i_say_go[] ={'b','e','r','e','a','d','y','t','o','t','h','r','o','w'};

^This is not on a different line. It should look something like this:

This may look confusing. You don't have to know this yet, but keep it in mind. 


Now, we're going to look at a statement called typedef. This statement allows you to substitute keywords like int, char, float, double, etc for other words. For example, you could write something like this:

typedef int i;

The int keyword is being substituted by the letter 'i', and everywhere else in the program you can use the letter 'i' to fill in for the keyword int. You don't have to use a single letter to fill in for a keyword. If you really want to, you could write something like this:

You may be wondering why this is useful. In the next post, you'll see why. That's all I have for now. Until then...

Thursday, December 8, 2016

Getting good at: C | #2 - getchar and putchar

2 - putchar('='); putchar(')');

How's it going bros. The next jacksepticeye here. Today, I'm going to show you how to use getchar() and putchar(). These are self explanitory: getchar receives a character, and putchar prints out a character. 

So to use putchar, type putchar(':'); in your main function. You can replace ':' with any character you want, so long as you keep it inside the single quotes. Your program should look like this:

int main()
{
    putchar(':');
    return 0;
}

This should print a colon on the screen.

In order to use getchar, we have to be familiar with another type of variable: char. (Actually, you can get away with using regular variables, but I don't recommend it.) Char is a variable that can only be used for characters. (You can set char variables to equal numeric values, but it'll be translated to ASCII, which will make it a character.) To use it, type char name = ':';, where 'name' is any name you want, and ':' is the character the 'name' is set to. Like regular variables, we can set char name to nothing, but to use getchar, you have to set char name equal to getchar(). Your program should look something like this:

int main()
{
    char name = getchar();
    return 0;
}

This allows the user to input any character. To output this character, just add printf("%c",name);, where "%c" tells printf() that the integer we're passing through is a character. Your program should look something like this:

int main()
{
    char name = getchar();
    printf("%c",memes);
    return 0;
}

This allows the user to input a character and outputs the same character. You can also use getchar() to pause a program. For example:


int main()
{
    int memes;
    memes = 1337;
    printf("memes = %d\nPress any key to continue.\n",memes);
    getchar();
    return 0;

}

This prompts the user to enter a character, and only after that will the program stop.

NOTE: You don't have to do the challenges below, but you can if you want to.

With this newfound knowledge, write a program that properly utilize both getchar() and putchar().

That's all I have for now. Until then...

Friday, December 2, 2016

Getting good at: C | #1 - Integers and printf()

1 - int a = 9

No, that's not a typo. C is a programming language published in 1978 by a company called 'Bell Labs'. (later AT&T)

C and C++ are very similar in syntax (They both look similar), but there are a few differences, a big one being that you can't make a class the same way you could in C++. With that out of the way, let's get right into this.

NOTE: If you have not installed Code::Blocks prior to reading this tutorial, do so now. If you're having trouble installing it, refer to this post.

So before we get started, we need to first make a C project. (Most projects are C++ by default.) 

Step 1: Click on 'Create a new project'.

Step 2: Click on 'Console Application'.

Step 3: Click 'Next >' once.

Step 4: Choose 'C' from the list.

Step 5: Continue as normal.

So after you're done, you should see something like this:

#include <stdio.h>
#include <stdlib.h>

int main()
{
     printf("Hello World\n");
     return 0;
}

This is a program that prints 'Hello World' on the screen. This is how it works:

#include - This tells the compiler to include a header file, usually stdio.h

int main() -  This is your main function. You can put statements like 'printf()' in it. 

NOTE: Don't forget to include this function in your program, or else it won't compile.

printf("words") - This statement prints words, values, or other stuff on the screen.

return 0 - When a program runs successfully, it returns a value of '0' to the system, telling it that the program ran without errors.

NOTE: Don't forget to put semi-colons at the end of your statements. Otherwise, you'll 
T R I G G E R your compiler.

To make a variable in C, you type 'int ' (without the quotes) and then your variable name. Then set it equal to something. (The bold letters signify that it was typed recently. You don't have to copy and paste the entire function to write a new statement.) It should look like this:

#include <stdio.h>

int main()
{
     int a = 2;
     return 0;
}

After that's done, press 'enter' and type 'printf("")' (without the ' quotes). In the " quotes, type %d . Outside the " quotes but still in the parentheses, put a comma, and then your variable name, in this case it's a. It should look like this:

#include <stdio.h>

int main()
{
     int a = 2;
     printf("%d", a);
     return 0;
}

After you're done, you should see something like this:

2
Process returned 0 (0x0)
Press any key to continue.


homework

You don't have to do these, but you can if you want to. I highly recommend you do so, because they will make learning programming languages a lot easier.

Exercise 1-1: Write a program that prints 5 on the screen, but make a variable and pass it to printf() rather than doing something like 'printf("5");'.


That's all I've got for today.