PDA

View Full Version : Propello Entertainment System (PES)



Vaati
07-17-2009, 05:51 AM
I was wondering what it would take to create a fully functional propeller powered version of the NES.· I have taken apart my NES, and since all the parts are thru hole, it is possible to breadboard this project.

So, is this possible?· I really don't want all my NES parts to just be put back together on a breadboard and work the same as they used to...· http://forums.parallax.com/images/smilies/smurf.gif



Thanks.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Quit buying all those fixed voltage regulators, and·get an Adjustable Power Supply (http://www.gadgetgangster.com/130)·for your projects!· Includes an LED testing terminal!

*-NEW-* SD Card Adapter (http://www.gadgetgangster.com/158)·Now available!· Add extra memory to your next Propeller project with ease!

Bill Henning
07-17-2009, 06:46 AM
You have many options - pretty much all of the propeller boards out there can be used to write and run retro games.

The path of least resistance is a Hydra - and Andre's book is excellent, I highly recommend it.

All the Propeller demo boards, proto boards, spinstudio, hybrid etc can be used for gaming.

Morpheus, once I write the first gaming driver, is probably the most powerful board for gaming due to its 256 color VGA modes and dual Propellers - however it currently does not support TV out.

Basically you have a wide array of choices!


Vaati said...
I was wondering what it would take to create a fully functional propeller powered version of the NES. I have taken apart my NES, and since all the parts are thru hole, it is possible to breadboard this project.

So, is this possible? I really don't want all my NES parts to just be put back together on a breadboard and work the same as they used to... http://forums.parallax.com/images/smilies/smurf.gif

Thanks.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com (http://www.mikronauts.com) - my site 6.250MHz custom Crystals for running Propellers at 100MHz (http://mikronauts.com/products/mikronauts-625mhz-crystal/)
Las (http://mikronauts.com/products/las-largos-lmm-assembler/) - Large model assembler for the Propeller Largos (http://mikronauts.com/products/largos/) - a feature full nano operating system for the Propeller
Morpheus & Mem+ (http://mikronauts.com/products/morpheus/) Advanced dual Propeller SBC with XMM and 256 Color VGA
Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full

Vaati
07-17-2009, 06:59 AM
Yes, I do have a demo board, 2 proto boards and a Gadget Gangster development kit.
What I really need to know is what I would need in order to read the info from the game cartridge... I have the connector and everything, but is anyone familiar with the programming needed to use the cartridges? I would think I would end up having to use the original chips from the NES to find out...

Thanks.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Quit buying all those fixed voltage regulators, and·get an Adjustable Power Supply (http://www.gadgetgangster.com/130)·for your projects!· Includes an LED testing terminal!

*-NEW-* SD Card Adapter (http://www.gadgetgangster.com/158)·Now available!· Add extra memory to your next Propeller project with ease!

Bill Henning
07-17-2009, 08:03 AM
Emulating an NES is a complex project - you may wish to tackle something simpler to start with.

If you do wish to tackle it, here are some useful links:

http://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_System
http://www.emulator-zone.com/doc.php/nes/
http://www.virtualnes.com/
http://www.zsnes.com/
http://www.snes9x.com/

Hope this helps,

Bill


Vaati said...
Yes, I do have a demo board, 2 proto boards and a Gadget Gangster development kit.
What I really need to know is what I would need in order to read the info from the game cartridge... I have the connector and everything, but is anyone familiar with the programming needed to use the cartridges? I would think I would end up having to use the original chips from the NES to find out...

Thanks.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com (http://www.mikronauts.com) - my site 6.250MHz custom Crystals for running Propellers at 100MHz (http://mikronauts.com/products/mikronauts-625mhz-crystal/)
Las (http://mikronauts.com/products/las-largos-lmm-assembler/) - Large model assembler for the Propeller Largos (http://mikronauts.com/products/largos/) - a feature full nano operating system for the Propeller
Morpheus & Mem+ (http://mikronauts.com/products/morpheus/) Advanced dual Propeller SBC with XMM and 256 Color VGA
Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full

ericball
07-17-2009, 09:06 AM
Make a Propeller based console is easy.· Just add your favorite controllers, an SD socket, and TV or VGA out.· Or just use the Hydra - it's what it was meant for.

But emulating a console is a whole different story.· The biggest problem is you need to emulate the CPU and GPU exactly.· Each instruction must take the identical number of cycles, and the CPU "clock" must be precisely in sync with the display clock.

For example, the Atari 2600 ran it's CPU clock at 1.19MHz (1/3 NTSC colorburst) and had exactly 76 CPU clocks per line.· Games would time their writes to the TIA (the 2600 GPU) to they would update the sprite data just before they were displayed.

Cartridges also have edge connectors which are extensions of the CPU/GPU bus - typically more than 32 pins (the NES uses a 72 pin interface, but of course not all of those are address/data.· And some of those cartridges had intelligence - counting cycles themselves to supplement the console's CPU & GPU.· This might cause problems for a multiplexed bus.

This is not to say it can't be done.· Anything is possible given enough time, money & effort.· They managed to squeeze an Atari 2600 emulator into a Gameboy Advance (although I think the emulator was tuned for each game).· But do recognize that this is not a trivial project.



▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Composite NTSC sprite driver: Forum (http://forums.parallax.com/showthread.php?p=800114)
NTSC & PAL driver templates: ObEx (http://obex.parallax.com/objects/483/) Forum (http://forums.parallax.com/showthread.php?p=803904)
OnePinTVText driver: ObEx (http://obex.parallax.com/objects/480/) Forum (http://forums.parallax.com/showthread.php?p=822453)

Nick McClick
07-17-2009, 09:51 AM
Well, the NES did run a 6502, and there's already been some work on emulating the 6510 (I think anyway). That said, this is still quite a challenge. Just looking at the pinouts (http://nesdev.parodius.com/) gives me a headache. Check out that link for a lot more information on NES development.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Gadget Gangster - Share your Electronic Projects (http://www.gadgetgangster.com)

waltc
07-17-2009, 12:27 PM
Emulating or recreating video game systems isn't easy - its time consuming and you need good electronic and programing skills along with a logic analyzer and good O'scope as you go up the food chain in terms of more complex systems.

When folks wanted to build their own Atari ST it eventually ended up as a FPGA - the CPU and custom logic was all rolled into a programmable piece of silicon because that was the only way to do it.

Those wanting their own Commodore Amiga(the Minimig) ended up with the somewhat the same solution - a 68k CPU and a FPGA recapitulating the Amiga's custom chips with enhancements.

In both cases it took a couple of years of hard work by dedicated people to achieve it.

CassLan
07-17-2009, 05:03 PM
This is a really interesting idea, but I understand what everyone is saying about its difficulties.

As far as emulation goes...is there a well known/well documented product or item that a beginer could try to emulate?

Rick

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


Prop Forum Search (Via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

Vaati
07-17-2009, 08:36 PM
Well, I think I already have a lot of the things I would need: An NES with all the parts and connectors that I am desoldering, a schematic for the NES, two SD card adapters, and a number of propellers.

I am first going to just try to make a spin program to make a recognizable Rygar move across the screen when the NES controller buttons are pressed, and then I can go from there...

On second thought, maybe I could start with the catchy Rygar music... http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Quit buying all those fixed voltage regulators, and·get an Adjustable Power Supply (http://www.gadgetgangster.com/130)·for your projects!· Includes an LED testing terminal!

*-NEW-* SD Card Adapter (http://www.gadgetgangster.com/158)·Now available!· Add extra memory to your next Propeller project with ease!

ericball
07-17-2009, 11:14 PM
CassLan said...
This is a really interesting idea, but I understand what everyone is saying about its difficulties.

As far as emulation goes...is there a well known/well documented product or item that a beginer could try to emulate?

MESS is an open source code emulator for multiple consoles.· Many of the emulators for specific consoles (i.e. Stella for 2600) also have source code available.· In many cases, the emulators are the best documentation for how the console works.


Nick McClick said...
Well, the NES did run a 6502, and there's already been some work on emulating the 6510 (I think anyway).
Functionally reproducting the processor is just the first step, which will let you·reproduce interactive and other non time-critical code.· But then you need to make it cycle accurate at the desired clock speed.· For example, the NES ran it's 6502 at 50% NTSC colorburst - 1.79MHz.· Say you could find a 5.369MHz crystal and run your Propeller at 85.9MHz - 48 times the clock speed of the NES.· But that only gives your PASM 6502 10 instructions to process each byte read from HUB RAM.· (The 6502 typically does 1 bus access per clock cycle.)

Sorry if I'm sounding down on this.· Emulating an NES may be possible -·the Propeller has a lot of processing power.· However, it will take a lot of effort to make it happen.


▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Composite NTSC sprite driver: Forum (http://forums.parallax.com/showthread.php?p=800114)
NTSC & PAL driver templates: ObEx (http://obex.parallax.com/objects/483/) Forum (http://forums.parallax.com/showthread.php?p=803904)
OnePinTVText driver: ObEx (http://obex.parallax.com/objects/480/) Forum (http://forums.parallax.com/showthread.php?p=822453)

Vaati
07-17-2009, 11:25 PM
Well, I really think this would be a good long-term project, because I am only four months into using the prop, and I still don't know too much about mc/pu stuff...

If I get any stroke of luck and find out how to make Rygar get to the castle in the sky, I will be sure to post it. http://forums.parallax.com/images/smilies/smile.gif


Thanks for all of your input, and I will post any questions I may have if the need arises.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Quit buying all those fixed voltage regulators, and·get an Adjustable Power Supply (http://www.gadgetgangster.com/130)·for your projects!· Includes an LED testing terminal!

*-NEW-* SD Card Adapter (http://www.gadgetgangster.com/158)·Now available!· Add extra memory to your next Propeller project with ease!

Clock Loop
07-17-2009, 11:41 PM
I suggest starting with studying the ROM files made from NES cartridges. One might not need to emulate all parts of a NES to accomplish making an emulator, you just need to render the graphics, and sound in sync with the timing and input.

Yea thats a big deal, but it might be faster than trying to emulate the main cpu of a nes.

Start with studying and understanding the cartridge format, and data. Then start drawing up plans on how to enumerate that data and render it on screen.

Because in all reality, the only info you need to manipulate is IN the cartridge (ROM).

I am sure much of a NES's parts were made because of the limited technology available back in the 80's.

Yes the software would be very complicated, but starting with the ROM files is where I would start, and work my way into getting the sound to play back, then perhaps sound fx, etc...

I bet you they even have TEST ROM files that are VERY basic, and are made to test the compatibility of various emulators.

ericball
07-18-2009, 02:53 AM
Also check out http://nesdevwiki.org

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Composite NTSC sprite driver: Forum (http://forums.parallax.com/showthread.php?p=800114)
NTSC & PAL driver templates: ObEx (http://obex.parallax.com/objects/483/) Forum (http://forums.parallax.com/showthread.php?p=803904)
OnePinTVText driver: ObEx (http://obex.parallax.com/objects/480/) Forum (http://forums.parallax.com/showthread.php?p=822453)

CassLan
07-18-2009, 04:20 AM
ericball said...

CassLan said...
This is a really interesting idea, but I understand what everyone is saying about its difficulties.

As far as emulation goes...is there a well known/well documented product or item that a beginer could try to emulate?

MESS is an open source code emulator for multiple consoles.· Many of the emulators for specific consoles (i.e. Stella for 2600) also have source code available.· In many cases, the emulators are the best documentation for how the console works.
Thanks eric, still though I think a console is a big gulp to swallow for someones first hardware emulation challenge (I'm speaking about myself).
What about emulating the 8086? (My First·PC) ·The timing / etc is not so critical right? because your not working with cartridges etc? I may be way off here http://forums.parallax.com/images/smilies/lol.gif

Rick

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


NYC Area Prop Club (http://www.gothampropclub.com)

Prop Forum Search (Via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)

·

ericball
07-19-2009, 04:58 AM
CassLan said...

What about emulating the 8086? (My First·PC) ·The timing / etc is not so critical right? because your not working with cartridges etc? I may be way off here http://forums.parallax.com/images/smilies/lol.gif
There was plenty of stuff on early PCs which was timing sensitive, but anything which used simple text I/O is probably safe.

The bigger problem with x86 is the size of the address space and the complexity of the instruction set.· The former means you will need external RAM of some kind, while the later means you will probably need to use LMM.



▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Composite NTSC sprite driver: Forum (http://forums.parallax.com/showthread.php?p=800114)
NTSC & PAL driver templates: ObEx (http://obex.parallax.com/objects/483/) Forum (http://forums.parallax.com/showthread.php?p=803904)
OnePinTVText driver: ObEx (http://obex.parallax.com/objects/480/) Forum (http://forums.parallax.com/showthread.php?p=822453)

heater
07-19-2009, 06:36 AM
CassLan: "What about emulating the 8086?"

Some of us have been working hard on emulating 6502, Z80 and 6809 on the propeller for a long time. Check ZiCog, MoCog threads and I think it was potatoheads 6502 thread in the Hydra forum.

After a lot of effort and a lot of input from many forum members (esp. Cluso) so far the best we have achieved is the Z80 on TriBlade hardware (for the external RAM) running CP/M.

Frankly, this is still slow (almost up to speed of an original Z80) and a lot of work.

No way would I consider attempting the 8086/8088. Not unless someone can come up with even more neat tricks to get it to work in the space, and at any reasonable speed.

Sad but true.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.