Archived

This topic is now archived and is closed to further replies.

How was the original Zelda created anyway?

This topic is 6594 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Assembly is the native language of your computer. When you write crap in 'C' or whatever, it basically gets translated into xxxembly. To program in Assembly is to tell the processor exactly what to do. Here's a little example:

mov EAX, y_pos
imul screenY
add EAX, x_pos
shl EAX, 2
mov EDI, EAX
mov EAX, color
repnz STOSD

This doesn't really do much, but it just shows how it looks, I recommend reading xxxembly Language Step by Step
(Jeff Dunteman)

It's a good book, and learning Assembly really helps in certain situations
(if I can't do something in C++, I just use the inline Assembly...problem solved-I MAKE IT do what I want, heheh).

Oh yeah, it's super fast too.

*sorry if some of the words come up as "xxxembly", stupid NetNanny here at school automatically takes out the 'a-s-s'

------------------
When life hands you lemons, throw them at God's head.

Share this post


Link to post
Share on other sites
So assembly (look I can write it, wheee!!) Is what, you said it was the computer's native language, but that's obviously not true because all computers run on a basis of the Binary system.

What is Assembly? My question isn't yet answered.

------------------
"Apollo is the kind of guy who can...no, will create a video game in Visual Basic."

Share this post


Link to post
Share on other sites
Yes, binary is the native language of the computer, and so is assembly: assmebly codes are directly convertable to binary. A processor takes a binary code, say 10100101 and preforms an operation based on that code. Now an assembly command, JMP for example, is converted by the assembler (like a compiler for assembly, sort of) into a binary code.
So, (assembly codes) == (binary codes).

Why does net nanny think xxx is so much better than ass?

------------------
- mallen22@concentric.net
- http://members.tripod.com/mxf_entertainment/

Share this post


Link to post
Share on other sites
Zenroth, what are you talking about...yes I know processors move and compute binary data, due to the fact that they are digital machines...but the assembly mneumonics/opcodes are embedded into the chip, and that IS assembly. The binary encoding is synonomous with the assembly opcode...example:

"0x89D8" means "mov AX, BX"
this is a 16-bit piece I just pulled from DEBUG...the instruction is encoded(packed) in a binary number sort of like this:

1000 1001 1101 1000
mov ax bx

this IS NOT accurate(so don't complain that I'm an idiot), it's just a sample showing that the binary digits are broken down to mean "do this" or "add these numbers".
Run DEBUG and try different but similar operations(e.g. "mov ax, bx" - "mov ax, cx")
You'll see that only part of the number representing the opcode changed to reflect your use of a different register.

Alternatively, you could download the Intel Architecture Guide from intel to see EXACTLY how the opcodes are broken down.

[This message has been edited by asmLOCK (edited November 18, 1999).]

Share this post


Link to post
Share on other sites
Actually, you are all wrong. Opcode commands are the native language of the computer, binary is how its stored, machine code is a visual representation of binary opcodes, and assembly is just a little bit above machine code in terms of direct translation.

For example, assembly code can use labels, macros, and other assembler directives that let the assembler know, for example, where your data assumes it starts in memory (for branching). This is done with the .ORG directive - that is NOT machine code NOR is directly translated into the executable code.

But, for all real purposes, no one writes in machine code because assembly has enhancements that make programming easier with NO loss of control. So all of you are correct in a sense. Its not really worth arguing about.

- Splat

[This message has been edited by Splat (edited November 17, 1999).]

Share this post


Link to post
Share on other sites
Just to add my two cents to this whole conversation...

Assembly Code is basically a system for making it easier to work with what is sometimes called Machine Language. Assembly Code uses what are called mneumonics (look the word up if you don't know what it means). These are instructions that have somewhat easy to use names (like ADD, MOV, etc.).

Machine Language is basically the sequence of instructions usually represented in binary or hex.

Assemblers can do a lot of other things for you too. Macro Assemblers can basically add extra language constructs to assembly to make life a little easier.

To make things even more complicated, the Machine Language is broken down into Microcode on a lot of processors. This means that the most basic instructions that we can send to a processor (Machine Language) are broken down just a little bit further before the processor does the actual work. You don't need to worry about Microcode, but it's cool to know that it takes place...

------------------

-Kentamanos

Share this post


Link to post
Share on other sites
That's how you have to write the first assembler (at least before cross/compilers, assemblers). Anyone remember writing an assembler for the C64 that consisted of a for... next loop, a poke and 500 lines of DATA statements?

Back to apollo's query:
To make matters worse for systems like the NES, they didn't have an operating system like we think of today. The processor doesn't realize periphiral chips are attached to the motherboard, so it just treats it like memory, and doesn't even realize you're setting/checking a graphics or sound chip. The system just provides BIOS-like routines to simplify the process.

Those systems had to use assembly becuase they were slow(NES was about 2-3 Mhz) and ROM chips are expensive (that's why N64 games are $20 more than PS)

Assembly code isn't portable, you can't run NES on windows so just forget about that for your game.

Visual Basic by itself might not be the best either (I'm not going to say M$ VB sux, if you're learning, continue, you'll learn a little more about computers) because it's designed to make Windows-like programs.

I suggest you look for some VB library that gives you the routines to simplify development, or look for a RPG "construction set" which is a program that lets you make your own art, characters, monsters, etc. without worrying about the 'programming' while working on your programming skill on the side. You'll get a better idea of how the games are generally built and if it's really something you want to do. It's not worth spending years to become a good programmer only to find out you don't really like making games.

I think www.demonews.com has a list of engines (some VB) and construction sets

good luck.

(P.S. I write JVM bytecode with a hex editor, MS j++ is for squares )

Share this post


Link to post
Share on other sites
Splat is right, but what I was talking about was true assembly, not Assembler specific keywords...(try picking up an old copy of MASM 4, not to user friendly as far as assembler directives goes). When you Disassemble a program-there's no variables referenced there (by name at least), no directives or any of that good stuff.

Kentamanos is right too (I was trying to give an example of microcode above, but I guess it didn't come accross too well).
Like Splat said, nothing to "argue" about...I'm just interested in sharing knowledge and answering questions.

And you obviously can't run nintendo games on x86, but I'm sure you've heard of Nesticle...so you could write nintendo roms if you wanted to.

Share this post


Link to post
Share on other sites
HAHAHA APALLO. this thread has gone on so long i almost forgot your name while reading it o these guys have hopefully answered your questions as to what assemmbly is. And YES it is really the native language of the sspecifice console chip set your using.. E.I.
intel has its intel ASM the PowerPC has its on ASM instructions ect. well im not gonna get into that the other guys did a great job.

Bascialy as for the actuall design of Zelda for the NES it used a "Linear Tile" engine that can be coded in most of your computer
languages including Virtual basic.. if your the kinda guy that can.. no will make a VB game. So basically i recommend looking for some tile based game articals. The concept is the same no matter what language your looking at using. If you want detailed help just Email me.. in case i didnt click the show email option when i rushed through registration here antix1@hotmail.com.

hopefully your still reading all this babbling were doing

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
asmLOCK.. how come you can say "Assembly" but not "assembly" ?????? isnt that weird?

Share this post


Link to post
Share on other sites
I want to know, what language was it created in? Does anyone here know?

------------------
"Apollo is the kind of guy who can...no, will create a video game in Visual Basic."

Share this post


Link to post
Share on other sites
Damn, talk about overkill. I believe the type of answer he was looking for in the original post (remember that one?) was Zelda is a 2D Tile Based game. GDNet has several articles on Tile Based games in the Reference->Programming section. These games can be written in any language.

I'm closing this one down.

Kevin

Share this post


Link to post
Share on other sites