Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
0 user currently in Suggestions/Bug Reports.
Acmlm's Board - I2 Archive - Suggestions/Bug Reports - Electronics site needed | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 1570/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-19-04 02:48 PM Link | Quote
I need a site that I can buy electronics in Canada without a credit card. I need the following parts:
-32KB SRAM
-8 transistors, of some sort
-8 resistors
-At least one diode, preferrably 17
-One of them DIP switches with 8 little switches in it
-A male parallel port connector

I'm going to be using them in my attempt to create a rewriteable Gameboy cartridge. It's especially important that the transistors and resistors, which will be on data and address lines, do not interfere with the data. To put it simply, due to a lack of lines the lower 8 address lines also act as the data lines (the PC is used as a ROM emulator). The transistors are used to route the lower 8 lines to address or data on the SRAM as necessary. Since the default path (when the transistors are off) is to data, I plan to put resistors on the data lines to ensure they won't be used when the address lines are open. Hence I need to be sure that none of these will interfere with the data being passed through. (Also: data lines are 2-way, address aren't. If possible I intend to put diodes on the address lines for safety, these of course must also not interfere with the data.)
Drag

Flurry

I don't post anymore! o_O
Level: 26

Posts: 206/254
EXP: 98946
For next: 3329

Since: 03-15-04
From: Deogon Vally, Dragon Country

Since last post: 316 days
Last activity: 44 days
Posted on 09-20-04 12:59 AM Link | Quote
RIGHT ON!

A hardware guy!

Jameco Electronics

That is where I get my parts.
Xzion666
Master of the BANNED clan
Level: 38

Posts: 619/642
EXP: 355806
For next: 14641

Since: 07-12-04
From: Mars.

Since last post: 402 days
Last activity: 339 days
Posted on 09-20-04 01:55 AM Link | Quote
Yeah www.jameco.com shold have the stuff that you need...My dad would probably know of a better site but he is asleep riht now so I will ask him later...But yeah Jameco should work for the stuff that you say that you need.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 1571/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-20-04 05:56 AM Link | Quote
Cool, but how do I figure out the size of the SRAM? They have like 32k x 8, what is that? I need 64 kilobytes (I said 32 before but I decided 64 would work better, then I could also have cart RAM at $A000-BFFF).

BTW, if it helps, here's the schematic I've come up with so far. To explain:
The D0-D15 and S at the top are parallel port lines. Since there's not enough lines for 16 address and 8 data, I've combined the lower 8 address lines with the data. Some things that aren't included in this diagram (mainly because I forgot) are that the CPU's address, data, read and write lines connect to the SRAM as normal. Also, between the transistors (T0-T7) and the SRAM's data lines are resistors. The Chip Enable, power and ground lines are omitted because they're just connected as normal. At the bottom there are switches on the Read Enable and Write Enable lines.
To program the SRAM, you enable Write and disable Read, then start up the GB. When the CPU requests an address, S (read) gets pulled high. (At least I think that's how it goes, if not, I can adjust for it.) This trips all the transistors, enabling the lower address lines. The resistors on the data lines ensure the address doesn't come through them (since the address lines are now less resistant). The PC reads the address and sends back the specified byte from the ROM file (a simple ROM emulator). To start, a special loader ROM is downloaded, which jumps into RAM so that its execution won't access ROM. The program waits for a keypress, while on the PC you load the ROM you want to program. When you press a button, the program reads every byte of ROM one at a time. Since the SRAM's read is disabled, it won't return its own contents, but since write is enabled, it will copy the data that's being read. Once it's done, you enable read (and in most cases disable write), and it runs like a normal cart.

Of course if anyone sees a problem with this, I'm open to suggestions.
Drag

Flurry

I don't post anymore! o_O
Level: 26

Posts: 207/254
EXP: 98946
For next: 3329

Since: 03-15-04
From: Deogon Vally, Dragon Country

Since last post: 316 days
Last activity: 44 days
Posted on 09-20-04 07:57 AM Link | Quote
Ahh... 32k x 8. I had that same confusion.

Ok.

The 32k of that means 32 KILOBYTES.

The x8 is there because that tells you how many bits the chip is (in this case it's 8). To get the number of BITS that are on the chip, you take the 32k and multiply it by 8. See? Simple.

Now, when you're reading the pinouts, when you see something like WE (write enable) with a symbol next to it (like /WE or WE#), that means the signal is reversed.

You know that 0 means false and 1 means true, right?

Logically, WE held low (0) means "Write enable is disabled", right?

When the symbol is there, it's reversed, so WE held low (0) means "Write enable is enabled".

As for everything else you said, I cannot help with that, because I'm a NES guy, not GB (yet), though I did open a gb cart once. They're WEIRD! It's like the ram, rom, and mapper are all in a single chip.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 1572/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-20-04 09:37 AM Link | Quote
Great, that's a huge help. One thing though, I see some that say "8k x 8 120ns (64kB)". Is that supposed to mean 8k or 64k?

As for the GB cart, they're actually pretty simple. Which did you open? All they actually need is ROM. Mapper (usually MBCx where x=1-5) and RAM are separate. Generally the MBC is labelled as what it it, and ROM is labelled PRG.

Also, when you say that a symbol next to the label means it's reversed, does that include labels that are overlined?


(edited by HyperHacker on 09-20-04 12:38 AM)
Drag

Flurry

I don't post anymore! o_O
Level: 26

Posts: 208/254
EXP: 98946
For next: 3329

Since: 03-15-04
From: Deogon Vally, Dragon Country

Since last post: 316 days
Last activity: 44 days
Posted on 09-21-04 03:09 AM Link | Quote
What labels? I've never seen those overlined labels...
If it's WE CE OE, that kind, then I'd assume so. (that it means the signal is reversed that is)

kb (with the lowercase b) means kilobit, and kB (uppercase B) means kiloBYTE.

And since 8 x 8 is 64, and there's a kB (uppercase B) after the only 64 there, I'd assume it means 64kilobytes.

The number of BITs will ALWAYS be much bigger than the number of BYTES.

120ns means it takes 120 nanoseconds for the data to show up on the data lines. On an NES, this *HAS* to be 250ns or less for CPU devices (like PRG ROM, and SRAM), and 175ns or less for PPU devices (like CHR ROM/RAM).

On a gameboy, I have no idea. And I opened Motocross Maniacs, and Tetris (I think). I know for sure Motocross Maniacs has one chip.

If you have gameboy dev docs handy, definately check out what the slowest ns response time can be before it's too slow for the processer.

Also, if the rom soldering requires you to bend some pins and stuff, I'd recommend buying some sockets. Do the bending and wiring and stuff on the socket, and you only need to solder the socket in there once, and you can replace the rom as MUCH as you could possibly want to. (Just be careful when removing the roms from the socket you soldered in, apply equal pressure to both sides when taking the rom out of your socket. You don't want to break the socket, or break up the solder that holds the socket in. )


(edited by Drag on 09-20-04 06:11 PM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 1576/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-21-04 04:37 AM Link | Quote
Hmm, I hadn't thought about the access speed. How much is 1ns? I'm not sure the PC could keep up.
Drag

Flurry

I don't post anymore! o_O
Level: 26

Posts: 211/254
EXP: 98946
For next: 3329

Since: 03-15-04
From: Deogon Vally, Dragon Country

Since last post: 316 days
Last activity: 44 days
Posted on 09-21-04 05:59 AM Link | Quote
No roms have 1ns access time, because that is near instantaneous.

ns means nanosecond, and those are EXTREMELY EXTREMELY small units of measurements.

I'm assuming 120ns is good for gameboy, just like it's good for nes. I really don't know what the acceptable range is though. That's why I said look through some gbdev docs. 120ns is probably fine though

Hey, if you get the wrong kind, just get another one, these things are really cheap. (it's waiting for them to come in the mail that's a pain in the ass. )
ErkDog

Fuzz Ball
Level: 47

Posts: 779/982
EXP: 752190
For next: 14013

Since: 03-15-04
From: Richmond, VA

Since last post: 40 days
Last activity: 19 days
Posted on 09-21-04 06:27 AM Link | Quote
8 x 8 means 8, 8k chips, or as mentioned 64k total....

and nano is as follows....

(This definition follows U.S. usage in which a billion is a thousand million and a trillion is a 1 followed by 12 zeros.)

A nanosecond (ns or nsec) is one billionth (10-9) of a second and is a common measurement of read or write access time to random access memory (RAM).

For comparison, a millisecond (ms or msec) is one thousandth of a second and is commonly used in measuring the time to read to or write from a hard disk or a CD-ROM player or to measure packet travel time on the Internet.

A microsecond (us or Greek letter mu plus s) is one millionth (10-6) of a second.

A picosecond is one trillionth (10-12) of a second, or one millionth of a microsecond.

A femtosecond is one millionth of a nanosecond or 10-15 of a second and is a measurement sometimes used in laser technology.

An attosecond is one quintillionth (10-18) of a second and is a term used in photon research.



so millisecond is 1/1000 of a second nano is 1/1,000,000,000 of a second.

There are 1 million nanoseconds in 1 millisecond

so it would take... 100 milliseconds is 1 tenth of a second
so there are 100 MILLION nanoseconds in 1 tenth of a second
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 1578/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-21-04 10:28 PM Link | Quote
Originally posted by ErkDog
A nanosecond (ns or nsec) is one billionth (10-9) of a second

Yeah, that's what I meant. Could an 800mhz Celery running a VB program be fast enough, shifting data in and out of the parallel port? I'm starting to wonder.
Cellar Dweller

Flurry
!!!
Level: 27

Posts: 142/269
EXP: 107817
For next: 8342

Since: 03-15-04
From: Arkansas

Since last post: 16 days
Last activity: 34 min.
Posted on 09-22-04 09:06 AM Link | Quote
"8K x 8" means 8K groups of 8 bits, or 64Kbits. If you look at the datasheet, you will see that there are 13 address lines and 8 data lines. I'm not sure what the others meant to say, but they seemed incorrect.

The parallel port runs off the ISA bus which has maximum clock rate of 8MHz. The CPU might be able to continue code execution during an ISA write cycle, but the CPU will need to wait during an ISA read cycle.

I doubt that the proposed scheme will work well, if at all. I'd look into 5V programmable flash and building a programmer out of 74LS series parts. Buying a programmer is also an option.
ErkDog

Fuzz Ball
Level: 47

Posts: 781/982
EXP: 752190
For next: 14013

Since: 03-15-04
From: Richmond, VA

Since last post: 40 days
Last activity: 19 days
Posted on 09-22-04 09:13 PM Link | Quote
Paralell interefaces are bout the crappiest interface on a computer hands down....

you should use the RS232 Com port, the communications would be much quicker
Cellar Dweller

Flurry
!!!
Level: 27

Posts: 144/269
EXP: 107817
For next: 8342

Since: 03-15-04
From: Arkansas

Since last post: 16 days
Last activity: 34 min.
Posted on 09-23-04 09:53 AM Link | Quote
Originally posted by ErkDog
Paralell interefaces are bout the crappiest interface on a computer hands down....

you should use the RS232 Com port, the communications would be much quicker


RS232 is faster? Are you insane? (or trolling?) You should know better! Just to be sure, I looked up the numbers.

The maximum speed of most RS232 ports is 14.4 KB/sec.
A standard paralell port can go up to about 150 KB/sec.
An enhanced paralell port can go up to about 2 MB/sec.(faster than USB 1.1)
Source: Scott Mueller/Upgrading and Repairing PCs 14th ed.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 1585/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-23-04 09:12 PM Link | Quote
So 2MB, which means 2,097,152 bytes per second, or if I'm doing this right, about one byte every 500 ns. I would need about twice that speed.
ErkDog

Fuzz Ball
Level: 47

Posts: 783/982
EXP: 752190
For next: 14013

Since: 03-15-04
From: Richmond, VA

Since last post: 40 days
Last activity: 19 days
Posted on 09-24-04 03:22 AM Link | Quote
I just know any time I have ever put ANYTHING on a paraellel interface on my PC it effectively rapes my computer, this does not happen on the com ports
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 1632/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-28-04 07:29 AM Link | Quote
Well, it doesn't sound like I'm gonna find anything fast enough to do it that way anyway. But I thought of another way, and I already have all the parts!

Basically what I do is just build a basic SRAM cart (hook an SRAM chip up to the ROM lines). I also need to build a cable to link between the PC (probably via parallel port since I have the required cables) and the GB's link port. Same idea really, but speed isn't a big problem. I've actually used a method like this before to run my own programs using Pok
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Suggestions/Bug Reports - Electronics site needed | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.013 seconds.