By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - Gaming - I wanna program a game and put it onto a NES/Genesis cartridge. Please Help.

I don't want to be condescending but if you have to ask you probably shouldn't be doing it ...

Developing a game for these platforms is not for the faint of heart and, unless you already have substantial low level development experience in assembly language, you probably start somewhere else. The only exception I would make to this is if you're already an experienced (professional) developer and have a high threshold for frustration.



Around the Network
darkknightkryta said:
 

Machine code isn't all that hard to read :D.  Both consoles don't have a C compiler, everything is done through assembly.

NES tutorials: http://www.patater.com/nes-asm-tutorials

Genesis Start (Not necessarily a tutorial, but will give you a start for searching): http://www.gamedev.net/topic/575801-making-a-game-for-the-sega-genesis/

I was talking about the code that looks like a mish mash of ASCII symbols.

Reading hex numbers in memory registers is much more doable though :)

EDIT: Now that I think about it, I might have gotten my definition of machine code wrong. If the hex numbers in register thing is called machine code, what's that code that just looks like a clusterfuck of ASCII signs called?



I LOVE ICELAND!

cloud1161 said:
darkknightkryta said:
KungKras said:
cloud1161 said:
KungKras said:
You'll have to use Assembly I believe. And you'll need the documentation for the all the chips.

Is Assembly a language or script or something like that?  And do you know how to go about getting the documentation for the chips?   And I am not sure if this is possible, but if is it possible to make your own cartridge if you got all the parts?

The cartridge is not a problem. You can buy a special cartridge that you can load files into from a docking station connected to your PC. I don't know where but I know they exist.

The Sega2.doc has info on the megadrive, but it's incomplete. I've found a few guides about programming the megadrive by googling "Programming the MegaDrive" I'm sure the NES homebrew community has info about the NES components, but I've never looked it up.

Assembly is basically as close as you can get to machine code without it being unreadable to all but very few programmers. It's basically direct commands for telling the processor to move, compare, add or subract, etc etc. It's very tedious to program, but other people have done it so you can too!

Machine code isn't all that hard to read :D.  Both consoles don't have a C compiler, everything is done through assembly.

NES tutorials: http://www.patater.com/nes-asm-tutorials

Genesis Start (Not necessarily a tutorial, but will give you a start for searching): http://www.gamedev.net/topic/575801-making-a-game-for-the-sega-genesis/

Thanks a bunch you guys.  I really want to get into doing my own gaming hardware stuff.  Are there any other recommendations for uploading a game to a popular system like NES or Genesis?   I would like to build a completely homegrown 8 or 16 bit console to play my own games and stuff on.  Do either of you know if it is possible to get a NES or Genesis or SNES or some other popular old school console schematic?   I would like to build one on my own if possible.   

For processor, I recommend the Motorola 6800 since it's still in use today, they're probably easy to find on Ebay or some other place that sells IC chips.

For sound, I'd use a Yamaha 2612. I bought one on Ebay myself, so probably easy to find. I think there is info about how it should be hooked up on the cirquit board and how to program it on its wikipedia page. But be warned, I find the schematic kinda hard to read even though I study electrical engineering.

I don't have any knowledge about any graphics chips.

That is, if you want to be realy old school. There are modern processors that can do simple graphics, audio playback and processing in one. If you want to make it easy for you, you should buy one of them.



I LOVE ICELAND!

KungKras said:
darkknightkryta said:
 

Machine code isn't all that hard to read :D.  Both consoles don't have a C compiler, everything is done through assembly.

NES tutorials: http://www.patater.com/nes-asm-tutorials

Genesis Start (Not necessarily a tutorial, but will give you a start for searching): http://www.gamedev.net/topic/575801-making-a-game-for-the-sega-genesis/

I was talking about the code that looks like a mish mash of ASCII symbols.

Reading hex numbers in memory registers is much more doable though :)

EDIT: Now that I think about it, I might have gotten my definition of machine code wrong. If the hex numbers in register thing is called machine code, what's that code that just looks like a clusterfuck of ASCII signs called?


I think you're thinking of a memory dump, but I can't be sure



HappySqurriel said:
KungKras said:
darkknightkryta said:
 

Machine code isn't all that hard to read :D.  Both consoles don't have a C compiler, everything is done through assembly.

NES tutorials: http://www.patater.com/nes-asm-tutorials

Genesis Start (Not necessarily a tutorial, but will give you a start for searching): http://www.gamedev.net/topic/575801-making-a-game-for-the-sega-genesis/

I was talking about the code that looks like a mish mash of ASCII symbols.

Reading hex numbers in memory registers is much more doable though :)

EDIT: Now that I think about it, I might have gotten my definition of machine code wrong. If the hex numbers in register thing is called machine code, what's that code that just looks like a clusterfuck of ASCII signs called?


I think you're thinking of a memory dump, but I can't be sure

Machine code is just a representation of assembly.  So for instance ADD  1 1 would represented as 110 for ADD 0001 for one in byte representation, so the full machine code would be 11000010001.  Now that's me simplifying it and assigning 110 for ADD.  It's a bit more complex, but each portion of the bit number represents something, so the first few digits would be your actual op, and the last 8 bits would be something, a memory address, direct numbers, registers, etc.  Higher the percision, so let's say a 64 bit processor vs 32 bit processor would let you have more complex ops and to represent bigger numbers.



Around the Network
darkknightkryta said:
HappySqurriel said:
KungKras said:
darkknightkryta said:
 

Machine code isn't all that hard to read :D.  Both consoles don't have a C compiler, everything is done through assembly.

NES tutorials: http://www.patater.com/nes-asm-tutorials

Genesis Start (Not necessarily a tutorial, but will give you a start for searching): http://www.gamedev.net/topic/575801-making-a-game-for-the-sega-genesis/

I was talking about the code that looks like a mish mash of ASCII symbols.

Reading hex numbers in memory registers is much more doable though :)

EDIT: Now that I think about it, I might have gotten my definition of machine code wrong. If the hex numbers in register thing is called machine code, what's that code that just looks like a clusterfuck of ASCII signs called?


I think you're thinking of a memory dump, but I can't be sure

Machine code is just a representation of assembly.  So for instance ADD  1 1 would represented as 110 for ADD 0001 for one in byte representation, so the full machine code would be 11000010001.  Now that's me simplifying it and assigning 110 for ADD.  It's a bit more complex, but each portion of the bit number represents something, so the first few digits would be your actual op, and the last 8 bits would be something, a memory address, direct numbers, registers, etc.  Higher the percision, so let's say a 64 bit processor vs 32 bit processor would let you have more complex ops and to represent bigger numbers.

I know that ...

I was simply commenting on his edit (where he is talking about bizzarre ascii characters, which is often the result of binary data being displayed in text)



darkknightkryta said:
HappySqurriel said:
KungKras said:
darkknightkryta said:
 

Machine code isn't all that hard to read :D.  Both consoles don't have a C compiler, everything is done through assembly.

NES tutorials: http://www.patater.com/nes-asm-tutorials

Genesis Start (Not necessarily a tutorial, but will give you a start for searching): http://www.gamedev.net/topic/575801-making-a-game-for-the-sega-genesis/

I was talking about the code that looks like a mish mash of ASCII symbols.

Reading hex numbers in memory registers is much more doable though :)

EDIT: Now that I think about it, I might have gotten my definition of machine code wrong. If the hex numbers in register thing is called machine code, what's that code that just looks like a clusterfuck of ASCII signs called?


I think you're thinking of a memory dump, but I can't be sure

Machine code is just a representation of assembly.  So for instance ADD  1 1 would represented as 110 for ADD 0001 for one in byte representation, so the full machine code would be 11000010001.  Now that's me simplifying it and assigning 110 for ADD.  It's a bit more complex, but each portion of the bit number represents something, so the first few digits would be your actual op, and the last 8 bits would be something, a memory address, direct numbers, registers, etc.  Higher the percision, so let's say a 64 bit processor vs 32 bit processor would let you have more complex ops and to represent bigger numbers.

I see. So machine code is the assembly commands when translated into binary numbers and stored in the registers? That's similar to how I remember it from digital technology class. Only, since we used a training processor with 8-bit registers, the command filled an entire register, and the adress came from the register after.



I LOVE ICELAND!

KungKras said:

I see. So machine code is the assembly commands when translated into binary numbers and stored in the registers?

Machine code would rarely be stored in registers, it would be stored in memory ... Registers are muti-byte data storage on the CPU that are referred to in instructions to perform computations. In Pseudo-Code, the following is like how most assembly language works

move next number into register 1
10
move next number into register 2
10
add register 1 to register 2
check error conditions
move result into memory



You don't know enough right now to do it. First learn to program something simple like Python. Then learn to program something more complex like C++ or Visual C. Then if yous till want to make a Genesis game you will need to find a Genesis home brew community and find out from them what it will take to program a game, for example the specific machine/assembly code.

It won't be easy and you may even need a natural programing talent to do it successfully. Even if you do learn to program and get the resources you need to program a Genesis game, you will need more than code to complete the game. I've made several games, (see: www.2bitproductions.org ), and I can tell you that even making simple games takes tons of art and sound assets. It takes a tremendous amount of planing and troubleshooting.

Don't put the cart before the horse. You will fail. But if you learn the basics, build on that knowledge with more knowledge, and are driven you will meet your goal. Whether the game will be good or not doesn't matter.



kain_kusanagi said:

You don't know enough right now to do it. First learn to program something simple like Python. Then learn to program something more complex like C++ or Visual C. Then if yous till want to make a Genesis game you will need to find a Genesis home brew community and find out from them what it will take to program a game, for example the specific machine/assembly code.

It won't be easy and you may even need a natural programing talent to do it successfully. Even if you do learn to program and get the resources you need to program a Genesis game, you will need more than code to complete the game. I've made several games, (see: www.2bitproductions.org ), and I can tell you that even making simple games takes tons of art and sound assets. It takes a tremendous amount of planing and troubleshooting.

Don't put the cart before the horse. You will fail. But if you learn the basics, build on that knowledge with more knowledge, and are driven you will meet your goal. Whether the game will be good or not doesn't matter.

... just to add to what you said ...

If you're interested in making games for the sake of making games, it also makes a lot of sense to use an already existing framework (like Panda3D) to make your games because it limits your exposure to the "hard" parts of game development while still giving you the flexibility to do what you want.