Archive for July, 2005

New flashcards are working!

Friday, July 29th, 2005 at 11:37

Yeah, they really work! In the end it turned out to be a problem with the programmer, the card doesnt seem to be very voltage tolerant :/

Even though i was able to write to it and erase the card the writing process still takes very, very long that is probably because of my programmer because i am running the ATmega16 at 3.3V even though the recommended voltage range is 4.5v-5.5v.

I am going to get a more voltage tolerant ATmega162 and build the final (hopefully!) USB proggrammer for the carts using an USB firmware implementation (it’s a bit slower than hardware usb but because of the cart timing it is hard to write to the cart as fast as USB can send the data to the chip).

Well, i will be in holidays for 2 weeks so I can’t do much :(

But i will take my laptop with me and try to develop some PM stuff ^_^

Posted in Pokemon Mini
by Lupin

Some more testing…

Tuesday, July 26th, 2005 at 00:06

I checked the CPLD today, looks like two pins are swaped on the cpld, don’t know if they are really swaped or meant to be that way (i doubt it :) ). Anyways, i checked all pins of the cpld and I can 100%ly confirm that the CPLD is working! I don’t know if that is good news or bad news because the cart still is not working… at least for me :(

So now only the flash memory or the PCB can be faulty. Probably i already damaged one of them by using the multimeter on the cart so often but since the CPLD still works i think that didn’t happen.

Now i really would like to be able to program a flash chip using a programmer and solder it to the cart to see if it would work because apparently programming the cart using my own programmer doesn’t work and if it would turn out that a pre-programmed flash chip + the working CPLD would not work on the cart we could make clear that there is a problem with the PCB.

Well… CPLD seems to work, Flash seems to work, PCB seems to be correct but the cart does not work… :(

Posted in Uncategorized
by Lupin

The new flash carts…

Friday, July 22nd, 2005 at 14:59

We got new flash carts, they look very good, high quality and I don’t see any problem with them… besides… they don’t work!

Ok, p0p sent me a cart to find out what is wrong, first of all i moded my PokéUSB to drive the cart at 3.3v only (the IO pins of the flash memory aren’t 5V tolerant) and I added some more functions to the firmware to read manufacturer and to write to the cart… nothing works! Everything i get is 0xF7 but the flash memory still seems to work because when i put the output enable line low it doesn’t output any data – that’s the normal behavior! So maybe it is the cpld that is on the cart? No… because the cpld is verified (it is programmed correctly) and the output enable line goes through the cpld, gets negated and then forwarded to the flash memory – this means the cpld should be working correctly too because OE got negated and forwarded to the flash.

I really have no idea what is wrong, i am going to measure the voltages and do some IO tests and check if the pins go low/high as they should… maybe this will give an answer to the problems :/

Posted in Uncategorized
by Lupin

Research on EEPROM

Wednesday, July 13th, 2005 at 15:59

Yesterday i figured out how to interface the Pokemon Mini EEPROM. The EEPROM is a tiny 8 pin chip below the battery (it is the largest IC apart from the CPU).

The registers at 0×2060 and 0×2061 give access to the external hardware and it seems like these registers just drive two IO pins that go directly to the EEPROM – this means there is no hardware support for reading the EEPROM!

I wrote a few functions to read and write to the EEPROM… All official games are using a special EEPROM management system where the header is 0×70 bytes large, it starts with “GBMN” (“GameBoy MiNi” ?) and every ROM saves its maker code+game name there (16 bytes) plus some kind of checksum (2 bytes). I did not yet figure out how to calculate the checksum (this would require to disassemble an official game because the checksum doesn’t seem to be standard CRC16) but you can just take an official ROM, change the maker code+game name and see what checksum the game is calculating when you take a look at the EEPROM file.

Everything is just tested in Minimon for now (Asterick did figure out how the EEPROM works but he did not publish detailed informations in his docs).

When the hardware tests are successful i will publish a little example here.

Posted in Pokemon Mini
by Lupin

Pimpomon Mini

Saturday, July 9th, 2005 at 23:57

Yesterday i soldered 22pF capacitors to C13 and C14 and replaced the resonator with a 10 Mhz quarz crystal. It worked out very well, there were minimal glitches on the LCD display (bars with different contrast going down top to bottom) and the music was horrible fast :)

I recorded a play of Pokemon Pinball (it’s a 3gp handy movie, you need quicktime to play it) and took a photo where you can see the capacitors and the quarz that i connected using wires (because this makes it easier to change the quarz while testing).

I also tried a 28 Mhz quarz but i think i killed my PM by doing that…

Because of this i removed the cart connector of the non-working PM and soldered it to a working PM board (it just took me about 10 minutes).

This morning I found something very interesting in my mailbox, a nice guy from www.mikrocontroller.net (a great german community about electronics and microcontrollers) sent me two EL-Foils + the needed Inverter for free! Ok, i got going and tried to add backlight to my PM screen!

I first had to remove the inverter from its tiny PCB to save some space, i then placed the inverter underneath the LCD screen. But of course first i removed the reflective foil that is glued to the back of the screen. It didn’t fit in very well at first, i just removed some of the plastic inside the PM to make some room.
Now everything you need to do is find a power source (the inverter actually needs 5V but 3V (you can only find 3V inside the PM) works too), the best place for this is the ROM connector because the Pokemon Mini will stay powered up even if you turn it off so if you would connect the inverter somewhere else the foil would glow even if the PM is turned off (which is bad because it eats up the battery) but the cart bus is turned off as soon as the PM goes into sleep mode (for saving power, a ROM might consume a lot of power). So after i soldered the inverter inputs to VCC and GND everything worked fine!

And here is a picture taken while my room was dark:

The thing in the left of the screen is one of the power connections… it should connecto to 110V AC but i think it’s actually only ~60V AC because the input voltage is 3V and not 5V. I really wonder what would happen if the 110V would accidently get in connection with the PM board, but i isolated the whole inverter circuit with some tape :)

Posted in Uncategorized
by Lupin