#107038 - SCPR - Wed Oct 25, 2006 9:48 pm
I was doing some searches last night and came across something called the "DMC Card" that supposedly has the same functionality as a Supercard. Anybody heard of it or own one? I'm probobly going to buy one unless its like another GBAMP. :p It does have flash memory so it can't be all that bad right? Check it out its only 35$ shipped
[webshop URL removed - read the rules please - MOD]
They got some cheap flashcarts too I'd also like some info on if anybody has any.
Last edited by SCPR on Sat Oct 28, 2006 5:35 pm; edited 1 time in total
#107180 - Sausage Boy - Fri Oct 27, 2006 1:03 pm
Being a not well known card, it probably has bad support for homebrew, so I wouldn't recommend it. Because that's what you'll use it for, right?
_________________
"no offense, but this is the gayest game ever"
#107206 - SCPR - Fri Oct 27, 2006 4:49 pm
Quote: |
Because that's what you'll use it for, right? |
Yes, homebrew of Course
Thanks I think I'll just try one of thier Flashcarts instead.
#107262 - KeithE - Sat Oct 28, 2006 2:59 am
I have tried these flash cartridges (not the DMC card), and they worked well for me. All the programs I've written work with them, and all the others I've tested except Luminesweeper and 2004 Mbit worked too. Anyone have an idea why those two would not work?
I was actually considering seeing if people wanted to place a group order for these 128 megabit cartridges. They seem perfect for sharing demos with friends, giving as gifts, etc. If there are enough interested people, I will coordinate an order - the cost would be less than $10 each.
The cartridges have 512 kilobytes of SRAM, and you load games onto the cartridge with PC software through the GBA link port. The software includes a multi-game menu so you can put more than one game on a cartridge.
Is anyone interested in ordering? If so, we should place an order within the next few weeks so it arrives in time for the holidays. If you want to check to see if your game works with these cartridges, you can email it to me and I'll test it. Just PM me with your email address or a link to your game. Note: I will not test commercial roms for you - only homebrew.
Keith
#107279 - tepples - Sat Oct 28, 2006 5:24 am
I'd be interested, if only to troubleshoot why Luminesweeper fails.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#107310 - KeithE - Sat Oct 28, 2006 1:25 pm
Could you please let me know how many cartridges you would like to purchase? In 3 weeks (November 18) I'll figure out how much everyone owes, collect payment via paypal, then place the order.
Besides the 128 megabit cartridges, I could also get 512 megabit cartridges for about $10 extra, and the DMC cards for $30 each. I have not tested either of these, so I can't comment on how well they work.
#107334 - SCPR - Sat Oct 28, 2006 5:46 pm
Opps Sorry about the link.
I ordered a 512mb card yesterday (30$ shipped) and I'll let you guys know how it works out when I get it. I'll also add a topic to the retailer feedback section when I have some feedback to report unless KeithE does it first. ;) ;)
I might be interested in a few 128 cards but I'll get back to you on that. :)
#107604 - elknimrod - Tue Oct 31, 2006 1:01 pm
I'll take two. This will only work if we get enough people buying, so let's get on it people!
Thanks for doing this Keith.
Ed
KeithE wrote: |
Could you please let me know how many cartridges you would like to purchase? In 3 weeks (November 18) I'll figure out how much everyone owes, collect payment via paypal, then place the order.
Besides the 128 megabit cartridges, I could also get 512 megabit cartridges for about $10 extra, and the DMC cards for $30 each. I have not tested either of these, so I can't comment on how well they work. |
#107617 - tepples - Tue Oct 31, 2006 5:16 pm
I'll take two. (Count on shipping to Indiana.)
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#107671 - josath - Wed Nov 01, 2006 2:16 am
Can you give us more info on the carts? I'd like to at least see what they look like before promising $$$. Thanks[/code]
#107675 - KeithE - Wed Nov 01, 2006 2:40 am
Sure, here's a link to a picture:
[Images not permitted - Click here to view it][/URL][/img]
#107676 - hamilton - Wed Nov 01, 2006 3:17 am
Oh I have one of those flash carts, green just like the one in the pic. Ive had it about a year and it's worked very well for me, the supplied software 'splink' is a little unreliable, but i'm sure you can use other tranfer software to flash it.
#107678 - tepples - Wed Nov 01, 2006 3:22 am
How much extra does that parallel linker cost? Or can the carts be rewritten with an MBV2, which I already have, or a Flash Advance Linker, which I also already have?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#107682 - hamilton - Wed Nov 01, 2006 3:30 am
As far as i'm aware both the MBV2 and Flash Advance Linker work with these generic carts. In this day and age i would not recomend parallel anything, heh.
#107688 - Lynx - Wed Nov 01, 2006 4:52 am
ahh.. crap.. I don't have a GBA to program with.. :(
_________________
NDS Homebrew Roms & Reviews
#107694 - tepples - Wed Nov 01, 2006 6:24 am
Do you have a GameCube? The Game Boy Player has the same serial port as the GBA.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#107696 - josath - Wed Nov 01, 2006 6:39 am
Didn't someone write an on-DS F2A flashcart writer? I wonder how hard that would be to adapt to work on this cart. (I as well have neither GBA nor GameCube/GBA Player)
#107718 - KeithE - Wed Nov 01, 2006 2:51 pm
An extra parallel linker is only $2 - not a big cost. I don't have an MBV2 or Flash Advance Linker so I can't test whether or not they work with these cartridges.
I did use Xboo Communicator and SendSave to backup the SRAM of these cartridges with the included parallel linker, so that makes me think that maybe an xboo cable would work for flashing these cartridges. I'll take a closer look at the cable and compare to the xboo schematic.
If you don't have a GBA, you can pick one up at your local game shop for about $25, and you can probably find one even cheaper on ebay.
If someone wants to mail me some alternative flashing hardware, I'd be willing to test it out to see if it works with these cartridges.
#107719 - kusma - Wed Nov 01, 2006 3:12 pm
I'd also be interested in those carts.
#107750 - hamilton - Wed Nov 01, 2006 6:58 pm
heh, well get an old one, secondhand and scuffed up GBA's go very cheap these day's......
#107774 - gauauu - Wed Nov 01, 2006 10:06 pm
I'd like 2 of them, and the linker.
#107776 - agsilva - Wed Nov 01, 2006 11:04 pm
This sounds good to me. I guess I'll take 2 and a linker, one for my game and one for the cool games people have been sharing. My game isn't done yet, BTW :).
#107847 - ScottLininger - Thu Nov 02, 2006 5:00 pm
I'm in for 100 cartridges.
:)
-Scott Lininger
#107870 - KeithE - Thu Nov 02, 2006 6:39 pm
Excellent - We now have a large enough quantity that we can definitely place the order!
I figured out why Luminesweeper and 2004Mbit didn't work - there was a problem with the header on both of them that I fixed by running gbafix.exe on them, and now they both work fine.
Some people have asked me how programs are written to these cartridges - here's how it is done:
First you must put your PC's parallel port into EPP (Extended Parallel Port) mode - this is done through the BIOS settings. The software does not work in any other mode.
Plug one end of the supplied cable into the parallel port and plug the other end into a GBA or GBA SP.
Insert the flash cartridge into the GBA or GBA SP, hold start + select, and turn the GBA or GBA SP on.
Use the software to transfer your program or programs to the cartridge - I'll submit the software to be placed in the tools/transfer section of gbadev.
#107879 - tepples - Thu Nov 02, 2006 8:17 pm
KeithE wrote: |
First you must put your PC's parallel port into EPP (Extended Parallel Port) mode [etc] |
So far, it's just like the MBV2 software.
Quote: |
I'll submit the software to be placed in the tools/transfer section of gbadev. |
Does the software work under Windows 2000 and Windows XP? Does it need a special parallel port driver? I seem to remember parallel flashing software that was designed only for MS-DOS or only for Windows 98.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#108000 - KeithE - Fri Nov 03, 2006 10:59 pm
I have used the software on Windows 2000 and Windows XP - it works fine on both and does not require a special parallel port driver. I have not tested it on Windows 98.
Also, these cartridges work on a DS lite. I just tested it today.
#108039 - gauauu - Sat Nov 04, 2006 6:40 pm
Any idea whether they can also be flashed using an EZ-Flash linker?
#108135 - KeithE - Sun Nov 05, 2006 6:39 pm
Sorry - I don't know whether an EZ-Flash linker will work on these cartridges.
#108137 - kusma - Sun Nov 05, 2006 8:32 pm
what ROM wait-states does the carts support?
#108164 - KeithE - Mon Nov 06, 2006 2:10 am
I have not specifically tested what ROM wait-states are supported.
If you would like to write and send me a program to test it, I'll try it out for you and post the results here.
#108174 - phonymike - Mon Nov 06, 2006 4:42 am
for under $10 a piece I will take 5 128mbit carts.
#108272 - Ant6n - Tue Nov 07, 2006 9:46 am
I am interested in this deal (would possibly take like 5-20), but i would like more information before committing.
I understand these are 16 MB flash cards, and you can load programs using parallel port.
is loading through usb possible?
are these better than supercard (which seems to be not accurate all the time)?
does this work in unix?
Anton
#108414 - KeithE - Wed Nov 08, 2006 4:18 pm
Loading through USB might be possible, but I don't know of a way to do it, and the supplier does not sell a USB linker for these cartridges.
I don't know how these compare to supercard, as I have never tested a supercard. These cartridges have been working well for me so far.
The flashing software from the manufacturer is only available for windows, but there may be other software (not from the manufacturer) that works in unix.
#108418 - kusma - Wed Nov 08, 2006 5:25 pm
KeithE wrote: |
I have not specifically tested what ROM wait-states are supported.
If you would like to write and send me a program to test it, I'll try it out for you and post the results here. |
actually, you could just test if
http://www.demoscene.no/kusma/sfc_fivefinger.zip and
http://www.demoscene.no/kusma/sfc_fivefinger_lamer_version.zip
works :)
that is at least enough for me ;)
#108462 - KeithE - Thu Nov 09, 2006 3:53 am
kusma,
your demos worked - I loaded them both onto a cartridge and they ran without any problems.
#108711 - SCPR - Sat Nov 11, 2006 3:34 pm
I got my 512Mbit card and it works great.
#108727 - KeithE - Sat Nov 11, 2006 6:20 pm
Here is the final pricing for the order of GBA flash cartridges:
Cartridges are $9 each.
1 parallel port linker is provided at no cost.
Extra linkers are $2 each.
Shipping within the USA is $5 per order (not per cartridge).
Shipping outside of the USA is $15 per order (not per cartridge).
I am going to be placing the order on November 18th, so if you would like to order please let me know soon and I'll PM you with the payment details.
Let me know if you have any questions.
Last edited by KeithE on Mon Nov 13, 2006 2:47 am; edited 1 time in total
#108765 - SCPR - Sat Nov 11, 2006 11:27 pm
Alright sounds good I'll take 3 with the 1 linker
Thanks,
#108801 - dantheman - Sun Nov 12, 2006 3:59 am
Holy crap, only $14 for the whole thing including shipping? My friend might be interested in one of these. I'll know by the 13th whether or not I'll be ordering one.
#108806 - Ant6n - Sun Nov 12, 2006 4:21 am
does the shpping go down with multiple cards?
#108887 - KeithE - Sun Nov 12, 2006 5:55 pm
Shipping is $5 no matter how many cards you order. It is not $5 per card. Here are some examples:
1 card, 1 linker - $14
2 cards, 1 linker - $23
5 cards, 3 linkers - $54
Add $10 to those costs for shipping outside of the USA.
#109003 - gb_feedback - Mon Nov 13, 2006 11:02 pm
I'm in for 6 cards, plus 1 extra linker, shipping to UK.
_________________
http://www.bookreader.co.uk/
#109092 - dantheman - Wed Nov 15, 2006 1:07 am
Alright, my friend is interested, so I'll order 1 cart, shipping within the USA.
#109314 - batwings21 - Fri Nov 17, 2006 4:22 am
SCPR, what software are you using with the 512 card? I got mine, and downloaded the software from there web site, splink512, but it is not in english, I did manage to load some roms, but it has a shell that loads first, but all in chinese.
#109325 - SCPR - Fri Nov 17, 2006 6:44 am
LOL, yeah my shells mostly in chinese as well but I managed to get the burning software in english. I've played around with it quite a bit and there seems to be a lot of features I can't understand such as a calendar what seems to a movie player and that password like screen that comes up after you flash. Anyway I'm trying to figure out how to translate it manually and I'll let you know if I make any progress
Created new topic
http://forum.gbadev.org/viewtopic.php?t=11729
#109401 - batwings21 - Sat Nov 18, 2006 12:52 am
I think they locked it because there was that final fight rom in the zip, I too would like to get pogo to run instead of that redboy chinese stuff.
#109403 - SCPR - Sat Nov 18, 2006 1:05 am
Yeah sorry my bad but it was fake and did come in the original archive.
#109405 - SimonB - Sat Nov 18, 2006 1:22 am
It wasnt fake at all, it is dump/backup of a commerically released game. The fact that it was the company who made and released the software that included it in the .zip doesnt justify spreading it on this forum (or at all for that matter).
SCPR wrote: |
Yeah sorry my bad but it was fake and did come in the original archive. |
#109590 - KeithE - Sun Nov 19, 2006 3:19 pm
I just placed the order for 160 cartridges. They should arrive in about a week or two, and I'll ship them out to people who ordered as soon as they arrive.
I did order some extra, so if you wanted to get some but didn't preorder, send me a PM.
#110364 - KeithE - Tue Nov 28, 2006 1:55 am
The cartridges have arrived! I'll get some boxes and put them in the mail by this weekend. There are extras, so if you would like to buy some send me a PM.
#110392 - Ant6n - Tue Nov 28, 2006 6:07 am
sooo, many cartriges ... mmmmh cartridges ... drool...
#110469 - tepples - Tue Nov 28, 2006 8:33 pm
So is there a revised download URL without the pirated game? Or should I put one up myself?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#110544 - batwings21 - Wed Nov 29, 2006 3:10 am
If you have a place to host the file, that would be great. I would post it, but I don't have enough available space. I would like to get pogoshell working. I wonder if there is any other software that will program these 512 cards?
#111237 - agsilva - Tue Dec 05, 2006 3:22 am
My carts came today. Excellent job organizing and doing this Keith! Thanks. :D
#111586 - KeithE - Fri Dec 08, 2006 1:15 am
I shipped the last few orders today, so everyone who ordered will be receiving their cartridges within a few days.
You are welcome - I'm glad I could be helpful.
#111750 - SCPR - Sat Dec 09, 2006 8:27 pm
Recieved my order today! Everything arived in perfect condition and they work great. Thanks KeithE! Well done.
#111758 - tepples - Sat Dec 09, 2006 9:49 pm
My ten carts and two linkers (and surprise Christmas present; thanks Kevin) got here, but they came pre-flashed with some commercial game (during qa testing?). I erased them all and put Luminesweeper on them to hide the evidence ;-)
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#111784 - KeithE - Sun Dec 10, 2006 1:35 am
Very interesting - anything that was on the cartridges was done at the factory. I didn't test any of the cartridges before I sent them out.
I checked the 15 that I have remaining, and 5 of them had a game on them.
I'm glad to hear everything arrived and is working!
Keith
#111797 - phonymike - Sun Dec 10, 2006 8:31 am
got my carts, these little guys are sweet. I just wish I could get a verify feature in the software. I tried my usb visoly linker but it was a no go, I might try my parallel port linker and see if littlewriter or some other stuff can write these things. awesomeness.
#111837 - tepples - Sun Dec 10, 2006 9:27 pm
LittleWriter can dump these but not write them. That was the first thing I tried. Given that LW is the only thing that will run on my copy of Windows 2000 (Userport doesn't seem to work), I had to use my grandma's PC. But all 10 of the carts worked.
But are these carts blessed? The first time I sat down with the game on one of these carts for longer than 15 seconds, I beat Luminesweeper game left (defined as score >= 999999). Is it the cart, or is it just all the tetris I've been playing while porting LOCKJAW: The Guideline (a Tetris DS clone, not TOD) to the GBA?
And is this a one-time thing, or will you make similar offers in the future?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#111862 - KeithE - Mon Dec 11, 2006 3:30 am
Yes, I blessed the whole lot of cartridges before I shipped them. It's much quicker than testing each one, and apparently it works;)
I would be willing to do another order sometime in the future if there is enough interest. The total order quantity needs to be at least 100 to make it worthwhile.
#112191 - gauauu - Thu Dec 14, 2006 6:27 am
tepples wrote: |
M... but they came pre-flashed with some commercial game (during qa testing?)... |
This was pretty common with cheap flash carts that I picked up while in China :)
#112298 - MrD - Fri Dec 15, 2006 1:15 am
I'm intrigued now; how was everybody's experience with these cartridges?
Was the software easy to use, is that multi-game menu thing optional, and do they eat homebrew for breakfast? :)
_________________
Not active on this forum. For Lemmings DS help see its website.
#112633 - chuckstudios - Mon Dec 18, 2006 11:26 pm
This is pretty cool. If anybody wants to do this again, I'm in.
#112785 - Ant6n - Wed Dec 20, 2006 5:33 am
got mine today 10/5 (indirect shipping). they seem to come loaded with mario and luigi something ...
Did anybody figure what software one can use to write these? anything for linux? multiboot possible?
would it be possible to get some kind of parallel usb adapter to write these?
anton
#112807 - hello world - Wed Dec 20, 2006 12:32 pm
Does anybody know if there are any more available; or even better, where the carts came from?
#112817 - KeithE - Wed Dec 20, 2006 2:37 pm
The software to write to these cartridges (for windows only) is here:
http://gggddfdgju.googlepages.com/
Multiboot is possible using the included cable and xboo communicator
If you only burn one game to the cartridge, the multi-game menu is not loaded. This means that they can be used for the DS, as long as you have a GBA to do the burning. The burning software loads the multi-game menu automatically when you burn more than one game. All the homebrew I have tried works fine on these cartridges, as long as the header is valid.
I have about 10 of these cartridges left, and a few linker cables - send me a PM if you want to buy them from me.
They were purchased from a Hong Kong distributor who only does wholesale.
If you would like me to order some more, send me a PM with the quantity that you want. When the quantity gets large enough (over 100) I will order them.
#112818 - tepples - Wed Dec 20, 2006 2:47 pm
I'm guessing that as most of the makers of DS compatible SLOT-2 flash cards shift their efforts to SLOT-1 cards, which cannot be used with GBA mode, you might get a lot more orders.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#115774 - stampede_dude - Fri Jan 19, 2007 1:00 am
Where can I get these...I will order 2 or more 128mbit carts at $10 a piece, maybe more...
#115778 - dantheman - Fri Jan 19, 2007 1:14 am
I believe he has to order them in bulk (more than 100 per order), so it may be a while before another opportunity comes.
#115801 - stampede_dude - Fri Jan 19, 2007 4:26 am
He still has some...yay :)
#116238 - KeithE - Tue Jan 23, 2007 4:40 pm
I'm now sold out of GBA cartridges until the next batch is ordered.
#116319 - futaris - Wed Jan 24, 2007 11:38 am
When is the next batch going to be ordered?
#116334 - KeithE - Wed Jan 24, 2007 2:13 pm
See post from December 20, 2006:
Quote: |
If you would like me to order some more, send me a PM with the quantity that you want. When the quantity gets large enough (over 100) I will order them. |
#121956 - kouky - Thu Mar 15, 2007 11:19 pm
I would be interested in buying 50 or 100 256Mbit (for a rom of 32MB) cartridges!
Could you give me a price for that ?
#121968 - KeithE - Fri Mar 16, 2007 12:47 am
The price would be the same as last time:
Cartridges are $9 each.
1 parallel port linker is provided at no cost.
Extra linkers are $2 each.
Shipping within the USA is $5 per order (not per cartridge).
Shipping outside of the USA is $15 per order (not per cartridge).
My total order quantity needs to be at least 100, so if you want 100 then I can definitely place the order. If you only want 50, then there would need to be other people who order another 50 to bring the total up to 100.
#121971 - kouky - Fri Mar 16, 2007 1:06 am
Cool, I thought that those prices were for 128 MB cartridges...
As long as you provide cartridge where a 32MO rom can fit, it's allright for me...
I just need to check my banking account now.
#121982 - knight0fdragon - Fri Mar 16, 2007 3:32 am
I will take 5 and a linker, when do you need the money by?
_________________
http://www.myspace.com/knight0fdragonds
MK DS FC: Dragon 330772 075464
AC WW FC: Anthony SamsClub 1933-3433-9458
MPFH: Dragon 0215 4231 1206
#122033 - KeithE - Fri Mar 16, 2007 4:49 pm
Those prices are for 128 megabit cartridges. Sorry, I didn't pay close enough attention to your previous post.
Unfortunately, the supplier does not have 256 megabit cartridges, only 128 and 512. The 512Mb cartridges require a USB linker, which costs a little bit more. Here are the prices:
512Mb cartridge - $15 each
USB linker for 512Mb cartridge - $10 each
No need to send payment yet - we need to have a large enough quantity (100 cartridges) before we can place the order.
#122042 - tepples - Fri Mar 16, 2007 7:06 pm
Is the bankswitching on the 512 Mbit carts known? Or does it still rely on a proprietary Chinese boot loader?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#122159 - KeithE - Sat Mar 17, 2007 2:28 pm
The bankswitching method is unknown. I have asked the distributor for bankswitching instructions, and he has forwarded the request to the manufacturer, but I doubt they will give any information.
Anyone know how to reverse engineer it?
#122169 - tepples - Sat Mar 17, 2007 3:42 pm
Try putting a few small games on the card, dumping the card with some other linker (legally OK for interoperability analysis per Sega v. Accolade and foreign counterparts), and logging writes to ROM space.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#122170 - chishm - Sat Mar 17, 2007 3:46 pm
KeithE wrote: |
Anyone know how to reverse engineer it? |
1) Get a copy of the menu with bankswitching code.
2) Run in an emulator, record invalid writes to GBA cart addresses. Also record reads if necessary.
3) Look for pattern in reads/writes.
This may not work if the code expects a reply from the hardware, so:
4) Record address of code that does read/write to GBA cart
5) Disassemble any code near that point, and possibly any called / calling functions.
6) This part is hard to explain. It usually involves reading through the code and tracing it while writing down "best guess" labels for functions / data.
7) Convert results to C code.
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com
#122542 - knight0fdragon - Tue Mar 20, 2007 2:27 am
does it have to be 100 of each cart??? cuz I may order a few 512s also
Also, perhaps we can write a wireless loader for either of these for those who do not have GBA's
_________________
http://www.myspace.com/knight0fdragonds
MK DS FC: Dragon 330772 075464
AC WW FC: Anthony SamsClub 1933-3433-9458
MPFH: Dragon 0215 4231 1206
#123367 - KeithE - Tue Mar 27, 2007 6:20 pm
No, the order does not have to be 100 of each cartridge - only 100 total.
So far I have about 10 confirmed orders. Only 90 more to go....
#123884 - sanguine - Sun Apr 01, 2007 4:01 am
I would be interested in buying one of these
is that too small an order?
any ideas if it will work with the xploder cheat device gba usb cable?
or whether that can be modified to work as one?
thanks
Rob
#124869 - MrD - Mon Apr 09, 2007 11:35 am
If these cartridges are the same teal type as the ones I've just received, they're the dog's nads.
When I got my red EZFA, it took about an hour for me to figure out how to get it to work (annoying driver fiddlyness), but this Parallel+Splink system worked straight away!
Huzzah!
_________________
Not active on this forum. For Lemmings DS help see its website.
#124880 - gauauu - Mon Apr 09, 2007 3:09 pm
Only problem I had was something with the form factor of the carts caused it so that occasionally, when I inserted the cart, it wouldn't read it until I removed it and plugged it in again.
Happens on both my SP and Micro.
Still, a great deal, though.
#125328 - KeithE - Thu Apr 12, 2007 6:00 pm
I received a PM with a question about these cards that I can't answer - maybe someone knows the answer to this question:
Can a 64 megabyte (512 megabit) game be burned to the 512 megabit cartridges, or is the maximum size for an individual game 32 megabytes? This is for a legitimate homebrew application, for those who are wondering.
No order is too small, as long as the total combined order quantity is at least 100. Sorry - I have no idea if it will work with the xploder cheat device gba usb cable - I don't even know what the xploder cheat device is.
#125331 - kusma - Thu Apr 12, 2007 6:06 pm
KeithE wrote: |
Can a 64 megabyte (512 megabit) game be burned to the 512 megabit cartridges, or is the maximum size for an individual game 32 megabytes? This is for a legitimate homebrew application, for those who are wondering.
|
ROMs above 256Mbit must manually do bank-switching, and the bank-switching code is different for most different cart-types. So, it depends on the application and cart combination.
#125333 - kouky - Thu Apr 12, 2007 6:15 pm
Damn!
I'm the guy who PMed Keith,
kusma, your answer means "this needs to be tested on the catual cartridge...", no ?
I just don't wan't to wastes lot of carts until I've found the right "bank-switching code"...
Fair enough, my app will be only 32MO :/
#125334 - kusma - Thu Apr 12, 2007 6:22 pm
kouky wrote: |
kusma, your answer means "this needs to be tested on the catual cartridge...", no ?
|
Pretty much, yeah.
kouky wrote: |
I just don't wan't to wastes lot of carts until I've found the right "bank-switching code"...
Fair enough, my app will be only 32MO :/ |
Is it your own application? If so, someone with first-hand experience and knowledge about the actual cart might have more info on this than me. I feel pretty confident that it should work, the question is how much effort has to be spent to make it work. A lot of carts have known bank-switching sequences, so if you're lucky these ones does as well. Best thing though, is to keep the application under 32MB, but that might now be an option.
#126575 - knight0fdragon - Tue Apr 24, 2007 5:22 pm
so any word on the number left that is needed?
_________________
http://www.myspace.com/knight0fdragonds
MK DS FC: Dragon 330772 075464
AC WW FC: Anthony SamsClub 1933-3433-9458
MPFH: Dragon 0215 4231 1206
#127201 - Bjsully - Mon Apr 30, 2007 9:25 pm
I would like to order
4 cards
&
2 transfer cables
Thanks,
B
#127631 - KeithE - Thu May 03, 2007 6:18 pm
A couple people have asked me "how many more cartridges need to be preordered for the order to be placed".
I have received 14 pre-orders, so we are a long way away from the 100 needed. If kouky or anyone else wants to buy at least 86 of them, I can place the order.
#129740 - gameboy_fan - Fri May 25, 2007 7:32 pm
I would like to be on the order list for
5 carts
4 extra cables
shipping to uk
TIA (if you ever reach 100....)
also, I got a 256m cart from gameswebshop (google it for the link, i'm not spelling it out with all these forum rules) that i never got working until i found this forum & the splink software. But, they have a newer? version on their site that i could never get working.
I'll upload if anyone's interested
#130390 - KeithE - Sat Jun 02, 2007 11:08 pm
Okay, I just got confirmation from kouky that he will purchase 86 cards, so we have enough to place the group order!
Final pricing is as follows - some small changes due to price change and USPS postage rate change:
128mb cartridges - $9 each
parallel port linker - $3 each (first one is free with cartridge)
512 mb cartridges - $15 each
USB linker - $10 each
USA shipping - $5 per order (not per cartridge)
outside USA shipping - $20 per order (not per cartridge)
I'll place the order on June 16th, so let me know if you want to order and I'll send you a PM with my paypal address.
#131043 - PhoenixSoft - Sun Jun 10, 2007 2:12 pm
Are you likely to be placing another order in about a month? I would like 25 of the 128 MB carts + a USB linker, but I won't have the money until mid-July.
#131056 - knight0fdragon - Sun Jun 10, 2007 5:59 pm
any words on if the DS cards are available for order?
_________________
http://www.myspace.com/knight0fdragonds
MK DS FC: Dragon 330772 075464
AC WW FC: Anthony SamsClub 1933-3433-9458
MPFH: Dragon 0215 4231 1206
#131066 - KeithE - Sun Jun 10, 2007 8:08 pm
I will definitely not be placing another order in a month - maybe in 6 months, maybe never again - depends on how much interest there is.
The DS cards aren't ready yet. I have some prototypes, but the manufacturer is still working on debugging the software for them. The software is not done yet, and I won't purchase something that is not done.
#131394 - KeithE - Fri Jun 15, 2007 1:33 am
Last call for orders - I'm placing the group order in less than 2 days.
#133694 - KeithE - Sun Jul 08, 2007 12:46 am
The cartridges have arrived, and they have been shipped to the people who ordered. There are some left (I ordered extras), so send me a PM if you want some.
128mb cartridges - 32
parallel linkers - 9
512mb cartridges - 9
USB linkers - 4
The 128mb cartridges can only be used with the parallel linkers.
The 512mb cartridges can be used with the parallel linker or USB, but USB is much faster.
The USB linkers only work with the 512mb cartridges.
#133714 - Ant6n - Sun Jul 08, 2007 1:56 am
Does anybody know how to unlock memory on these?
#133716 - dantheman - Sun Jul 08, 2007 2:05 am
Are you referring to something like Lick's RAM API? From my understanding, these are NOR-based carts that have no usable RAM in them. If this is not what you're asking, then I apologize for the misunderstanding.
#133720 - tepples - Sun Jul 08, 2007 2:21 am
dantheman wrote: |
Are you referring to something like Lick's RAM API? From my understanding, these are NOR-based carts that have no usable RAM in them. |
But can, say, 128 KiB blocks of the NOR be rewritten, such as if I want to persist data larger than 32 KiB, or if I want to make a flash writer that runs on a DS, copying the data from a file system in SLOT-1?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#133878 - phonymike - Mon Jul 09, 2007 2:57 pm
I haven't done any gba stuff in a while, but I checked out the boot loader on the cart, it's a real simple unlock sequence. I haven't actually tested it, but I see no reason why it shouldn't work. it can change rom banks and sram banks, but apparently the loader doesn't think my little demos use sram, so I think it left it at the default sram bank. my cart is the 128mbit one with the splink software.
*(u16*)0x930ECA8 = 0x5354
*(u16*)0x802468A = 0x9413
*(u16*)0x930ECA8 = 0x5354
*(u16*)0x802468A = 0x9413
*(u16*)0x8E12728 = rom bank
*(u16*)0x9300000 = 0xF0F0
*(u16*)0x8000000 = 0x00FF
dead loop 0x40 times (delay)
*(u16*)0x930ECA8 = 0x5354
*(u16*)0x802468A = 0x9413
*(u16*)0x930ECA8 = 0x5354
*(u16*)0x802468A = 0x9413
*(u16*)0x8E1272A = ram bank
*(u16*)0x9300000 = 0xF0F0
*(u16*)0x8000000 = 0x00FF
dead loop 0x40 times (delay)
**updated**
rom bank = 0x0000 = first bank
0x000000 - 0x01FFFF on flash chip
rom bank = 0x0008 = second bank
0x020000 - 0x03FFFF on flash chip
rom bank = 0x03FF = last bank on 128mbit cart
0xFE0000 - 0xFFFFFF on flash chip
the ram banks are split into 32KB chunks. bit12 must be set (0x1000) I don't know why. bit7 specifies a 32KB bank (0x80) I assume it mirrors any higher address reads.
ram bank = 0x1000 = first 64KB bank
ram bank = 0x1002 = second 64KB bank
ram bank = 0x1004 = third 64KB bank
ram bank = 0x1080 = first 32KB bank
ram bank = 0x1081 = second 32KB bank
ram bank = 0x1082 = third 32KB bank
they overlap so if you do for some reason want 32/64 to fit on the same sram, you just mix and match, taking into account a 64KB bank takes up 2 banks, do this:
ram bank = 0x1080 = 32KB
ram bank = 0x1001 = 64KB
ram bank = 0x1003 = 64KB
ram bank = 0x1085 = 32KB
ram bank = 0x107D = last 64KB
ram bank = 0x10FE = last 32KB
it looks like there's 4MB (megabytes) of sram!
both series have the same unlock sequence (4 writes to 2 addresses.) the rom bank and ram bank address are back to back. the smallest rom bank the writer would make was 0x20000 bytes (128KB) but looking at the values maybe it can go smaller (visolys would do 32KB banks.) I would guess the 0xF0F0 write locks in your rom/ram bank settings, and the final write is very curious. 0x00FF to the first byte on the cart is usually a setting for flash chips to set them to read only mode. so if this unlock sequence really unlocks the cart, you could just use jeff frohwein's flinker (it's got source code) to write the chip from the gba. and the dead loop at the end I assume is just for a delay to allow the cart to do its thing. it is probably neccessary, don't let your compiler optimize it out.
if anyone needs any more info or does/can't get this to work let me know!
Last edited by phonymike on Tue Jul 10, 2007 5:59 pm; edited 1 time in total
#133884 - chuma - Mon Jul 09, 2007 3:21 pm
When I download flashcart.exe from http://gggddfdgju.googlepages.com/ and try to install it on Windows XP, I just get an error dialog that says "The setup files are corrupted. Please obtain a new copy of the program."
Downloaded it many times now with Firefox 2.0, IE7, and GNU wget - always the same result.
The 512flashcart.rar file is also corrupted - gives me unexpected end of archive errors with WinRAR 3.62.
Could you fix the files, please?
#133892 - KeithE - Mon Jul 09, 2007 4:14 pm
good work phonymike - I hope your work leads to good things.
I'll upload new files soon - strange that they are not working - they used to work fine.
#133897 - chuma - Mon Jul 09, 2007 4:48 pm
I found a working copy of flashcard.exe on my PC that I downloaded on June 4. The md5sum of that file is e5e7cd6e199612ea640f00d9ec55f42c in case it matters.
#134088 - KeithE - Tue Jul 10, 2007 2:59 pm
Try downloading the files now. They should be working.
#134172 - Ant6n - Wed Jul 11, 2007 8:55 am
phonymike wrote: |
...
if anyone needs any more info or does/can't get this to work let me know! |
so a 'bank' is like a window into some location of ram/rom on the flashcard, and your sequence changes where that window 'points' to in physical ram; whereas the window is always at the same address, right?
So couldnt programs that use external ram not simply check whether the right bank is chosen, and if not simply switch it. Like that they could emulate access to the whole 128mbit, no?
#134226 - phonymike - Wed Jul 11, 2007 7:21 pm
yeah, the gba can only see 64KB of sram at any time. you read 0xE000000 - 0xE00FFFF and you get 64KB, the rest of the 4MB is undetectable by the gba without more code. you switch to the next bank and read 0xE000000 - 0xE00FFFF again, but now it's totally different (it's another page.)
most of the following was pieced together from different code from different sites covering amd, atmel, spansion (?) and other crap. most chips have the same basis for flashing, but this one took a little trial and error to get working right. the closest thing I found would be MBM29LV800 data sheet. it appears to be an identical command set (listed as byte, still uses 16bit reads/writes) HOWEVER when writing to the address 0xAAA you get nothing, you must write to 0xAAAA and you'll be good. I believe this card is sold as "AnyU", "AnyC", and/or "Super FC."
Code: |
u16 tmp;
u8 MANUF_ID = 0;
u8 DEVICE_ID[4] = 0;
#define ADDR_UNLOCK_1 0xAAAA
#define ADDR_UNLOCK_2 0x555
#define ADDR_AUTOSELECT 0xAAA
#define ADDR_PROGRAM 0xAAA
#define ADDR_ERASE_SETUP 0xAAA
#define ADDR_ERASE 0xAAA
#define ADDR_DEV_ID0 0x02
#define ADDR_DEV_ID1 0x1C
#define ADDR_DEV_ID2 0x1E
#define ADDR_DEV_ID3 0x06
#define DATA_UNLOCK_1 0xAA
#define DATA_UNLOCK_2 0x55
#define DATA_AUTOSELECT 0x90
#define DATA_RESET 0xF0
#define DATA_PROGRAM 0xA0
#define DATA_ERASE_SETUP 0x80
#define DATA_ERASE_ALL 0x10
#define DATA_ERASE_SEC 0x30
//erases a block of 0x10000 bytes, lower 16bits are ignored
//address can be 0x000000 - 0xFF0000 for 128 card
//address can be 0x000000 - 0x3FF0000 for 512 card?
void EraseBlock(u32 address){
*(u16*)(0x8000000 + ADDR_UNLOCK_1) = DATA_UNLOCK_1;
*(u16*)(0x8000000 + ADDR_UNLOCK_2) = DATA_UNLOCK_2;
*(u16*)(0x8000000 + ADDR_ERASE_SETUP) = DATA_ERASE_SETUP;
*(u16*)(0x8000000 + ADDR_UNLOCK_1) = DATA_UNLOCK_1;
*(u16*)(0x8000000 + ADDR_UNLOCK_2) = DATA_UNLOCK_2;
*(u16*)(0x8000000 + address) = DATA_ERASE_SEC;
while(*(u16*)(0x8000000 + address) != 0xFFFF){
tmp++;
}
}
//erases entire chip
void EraseAll(){
*(u16*)(0x8000000 + ADDR_UNLOCK_1) = DATA_UNLOCK_1;
*(u16*)(0x8000000 + ADDR_UNLOCK_2) = DATA_UNLOCK_2;
*(u16*)(0x8000000 + ADDR_ERASE_SETUP) = DATA_ERASE_SETUP;
*(u16*)(0x8000000 + ADDR_UNLOCK_1) = DATA_UNLOCK_1;
*(u16*)(0x8000000 + ADDR_UNLOCK_2) = DATA_UNLOCK_2;
*(u16*)(0x8000000 + ADDR_ERASE) = DATA_ERASE_ALL;
while(*(u16*)0x8000000 != 0xFFFF){ //loop until chip reads 0xFFFF (erased)
tmp++;
}
}
void ReadID(void){
*(u16*)(0x8000000 + ADDR_UNLOCK_1) = DATA_UNLOCK_1;
*(u16*)(0x8000000 + ADDR_UNLOCK_2) = DATA_UNLOCK_2;
*(u16*)(0x8000000 + ADDR_AUTOSELECT) = DATA_AUTOSELECT;
MANUF_ID = *(u8*)0x8000000; //should be 0x04
DEVICE_ID[0] = *(u8*)0x8000002; //-
DEVICE_ID[1] = *(u8*)0x800001C; //should be 7E1200 for 128 card
DEVICE_ID[2] = *(u8*)0x800001E; //-
DEVICE_ID[3] = *(u8*)0x8000006; //0x08 on the 128 card
*(u16*)0x8000000 = DATA_RESET; //reset card for read mode
}
void ProgramWord(u32 address, u16 data){
*(u16*)(0x8000000 + ADDR_UNLOCK_1) = DATA_UNLOCK_1;
*(u16*)(0x8000000 + ADDR_UNLOCK_2) = DATA_UNLOCK_2;
*(u16*)(0x8000000 + ADDR_PROGRAM) = DATA_PROGRAM;
*(u16*)(0x8000000 + address) = data;
while(*(u16*)(0x8000000 + address) != data){
tmp++;
}
}
void rom_bank(u16 bank){
*(u16*)0x930ECA8 = 0x5354;
*(u16*)0x802468A = 0x9413;
*(u16*)0x930ECA8 = 0x5354;
*(u16*)0x802468A = 0x9413;
*(u16*)0x8E12728 = bank & 0x3FF;
*(u16*)0x9300000 = 0xF0F0;
*(u16*)0x8000000 = 0x00FF;
for(tmp=0;tmp<40;tmp++){
tmp2++;
}
}
void sram_bank(u16 bank){
*(u16*)0x930ECA8 = 0x5354;
*(u16*)0x802468A = 0x9413;
*(u16*)0x930ECA8 = 0x5354;
*(u16*)0x802468A = 0x9413;
*(u16*)0x8E1272A = 0x1000 + (bank & 0x7F); //0x1000 is needed, 0x80 can limit to 32KB
*(u16*)0x9300000 = 0xF0F0;
*(u16*)0x8000000 = 0x00FF;
for(tmp=0;tmp<40;tmp++){
tmp2++;
}
} |
to write data to the flash is easy, erase a single block of 0x10000 bytes, then write data a u16 at a time. the following will write the first 0x20000 of the flash chip.
Code: |
EraseBlock(0);
for(i=0;i<0x8000;i++){
ProgramWord(i * 2, 0xFEED); //address is in bytes, while we're programming words, *2 it is
}
EraseBlock(0x10000);
for(i=0;i<0x8000;i++){
ProgramWord((i * 2) + 0x10000, 0xBEEF);
} |
anyone got a 512 cart they could run some code on? I can email you a binary that spits out relevant info on the card (4 bytes) or just fire off the ReadID routine on your cart. the tmp variable is needed for the loops, when writing the cart it just keeps reading until it reads the value it put there. a timeout could be added to these routines otherwise they'll freeze if the cart is removed or some other error happens.
#135887 - gameboy_fan - Thu Jul 26, 2007 11:54 pm
has anyone had any sucess with pogoshell? I can get the shell working on my 128m cart, but cartroms don't seem to work (I.e. multiboot).
I figure that it probably needs the correct bankswitching code.
While on the subject, I already had one of these that i got from a website,
when i received it, the card was flashed with some basic (white text on black background) menu program. In hindsight i wish i'd backed it up because it seemed to be able to run .nes stuff in the background. What I mean by this is that as i used the keypad to move through the .nes stuff, it would automatically start the rom in whilst still showing the menu. The main menu would only clear when i selected a rom to execute.
I know that the gamebios rbasic.gba menu/bootloader works with these carts.
#135891 - dantheman - Fri Jul 27, 2007 12:28 am
gameboy_fan wrote: |
While on the subject, I already had one of these that i got from a website, when i received it, the card was flashed with some basic (white text on black background) menu program. In hindsight i wish i'd backed it up because it seemed to be able to run .nes stuff in the background. What I mean by this is that as i used the keypad to move through the .nes stuff, it would automatically start the rom in whilst still showing the menu. The main menu would only clear when i selected a rom to execute. |
Sounds like the default behavior of the PocketNES menu to me. Have you tried making your own PocketNES compilation and comparing the behavior of its selection menu to the one you're describing?
#136174 - gameboy_fan - Sun Jul 29, 2007 9:54 pm
the cart was preflashed with a compilation consisting of 3 commercial roms and the rest was filled with the nes stuff. I'm guessing that pocketnes can't start commercial roms too. Unless the multiboot rom was based on the pocketnes code somehow?
#136186 - tepples - Sun Jul 29, 2007 10:57 pm
gameboy_fan wrote: |
I'm guessing that pocketnes can't start commercial roms too. Unless the multiboot rom was based on the pocketnes code somehow? |
PocketNES is free software, and it can be easily modified to bankswitch commercial games into 0x08000000 and jump to them. A lot of pirate multicarts do this.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#136357 - Kamjin - Tue Jul 31, 2007 9:15 pm
tepples wrote: |
gameboy_fan wrote: | I'm guessing that pocketnes can't start commercial roms too. Unless the multiboot rom was based on the pocketnes code somehow? |
PocketNES is free software, and it can be easily modified to bankswitch commercial games into 0x08000000 and jump to them. A lot of pirate multicarts do this. |
Not in this case, it's actually another boot menu.. there's 3 bootloaders for the ANYC/U 32Mbit->256Mbit.. the modified RBasic, the "Jukebox", and the "Yarrrrr.. cart" menu. You build the image separately in this windows based tool, and then you upload it to a gang programmer..
#136691 - gameboy_fan - Fri Aug 03, 2007 9:39 pm
after 2 days looking for a decent disasm/debugger (i settled on mappyvm)
and trawling the mess that is pogodist-050106.tar.bz2 (aka pogoshell 2b4 broken) found at the if2a website. I managed to knock up a makeshift working bankswitch routine :) THANKS phonymike
**update** I've got the sram to work too. I need some beta testers...
I'm not sure that the carts have 4MB, mine looks like it might have only 1024Mbits ?
I've got pogo 2b3 working from source code. At some point I'll patch the distro binaries for 2b4 as the source I have is incomplete/broken.
I'm stuck without the txt reader which seems to require "arm-agb-elf-g++" which i'm guessing is the c++ thats not present in the devkitadv mini that i downloaded.
Does anyone have alternative bootloaders? anyc/u ones etc? I think the gamebios / firelink ones might work too
#137571 - josath - Mon Aug 13, 2007 4:41 pm
Anyone had any luck getting the erase/programming code to work on the DS? I'm planning to pick up a couple of these, and this way I wont need to find some old GBA just to do the programming.
#137574 - ps2aich - Mon Aug 13, 2007 5:09 pm
josath wrote: |
Anyone had any luck getting the erase/programming code to work on the DS? I'm planning to pick up a couple of these, and this way I wont need to find some old GBA just to do the programming. |
No, I played a little around with phoneymikes code, and bankswitching
seems to work, cartridge info only on non programmed 128 MB cartridges,
but erasing is not working, I didn't try programming yet.
I suppose there is some 'unlock' code needed yet to set the cartridges
into programmable mode (as e.g. SetVisolyFlashRWMode() in Jeff Frohweins FLinker).
I also tried cartlib from Jeff Frohwein GBA FLinker v1.72,
and had no luck either.
I have the problem that I'm a total hardware noob, so I would appreciate
any hints on this subject, since it would be ideal to program the
cartridges from the DS.
#142270 - mute - Sun Oct 07, 2007 1:57 pm
I ordered a $10 128Mbit card from Hong Kong, but it looks a bit different. From the picture posted here, the flashchip looks smaller (probably a mitsubishi), with a small asic to the left, and the sram on the back.
Was wondering the Manuf/Device returned on these cards when using cartlib.c? I got 1C:B9 for mine.
I don't own a GBA, nor a parallel port, but it came with the same parallel port linker. I've not programmed in awhile (and never for nds/gba), but I am hoping that tftpds can be modified to work with the card I have so I can program it (via wifi at that!). Before I found this thread I did some tests last night. The NonTurboFAEraseBlocks worked without error - the preflashed FIREEMBLEM8.GBA is gone, but I got write errors of course using NonTurboFAWrite's.
I'm going to try the posted code tonight. I've heard my card works with SPLINK, so I'd imagine it's the same routines even if the hardware looks different from the picture. PCB reads 'SZcard ver.1' on lower-right corner.
Thought it'd be a good deal and great way to share homebrew... Hopefully it is once I get a way to flash it.
... have one of ya'll already got an in-system program working for NDS on these?
#142310 - chuma - Mon Oct 08, 2007 12:52 am
Look at the cart PCB near the edge connector, The two that I ordered from KeithE the last time around say "SZcard ver. 3" but I've heard from people who have gotten version 2 carts from other sources.
#142316 - mute - Mon Oct 08, 2007 2:07 am
chuma wrote: |
Look at the cart PCB near the edge connector, The two that I ordered from KeithE the last time around say "SZcard ver. 3" but I've heard from people who have gotten version 2 carts from other sources. |
Happen to know which flash rom is on it? Mine is SZcard ver. 1 and it has M6MGD137 W66CKT. Can't find data sheet. I think the normal intel erase routines worked, so I was trying these other write routines but I'm uncertain if they've been working since it'd end up stopping somewheres...
SRAM is HY62U8200B
#142337 - chuma - Mon Oct 08, 2007 1:47 pm
Same flash chip here, different SRAM. Here are pics:
http://www.flickr.com/photos/chuma_/1181645701
http://www.flickr.com/photos/chuma_/1181645719
Try googling for "M6MGD137" to find similar chips.
If you need a guinea pig for testing, I have an R4 as well, and two of these SZcard carts so if I bugger one I won't be too upset ;)
#142405 - mute - Mon Oct 08, 2007 11:19 pm
chuma wrote: |
Try googling for "M6MGD137" to find similar chips.
If you need a guinea pig for testing, I have an R4 as well, and two of these SZcard carts so if I bugger one I won't be too upset ;) |
hah. thanks, but i think i finally got it! i never found anything about that silly flash chip! i found this post and decided to try to write a program to flash it myself using the NDS. i think i finally figured it out! i never tried started without phonymike's post. thanks!
does that code that phonymike posted work on the M6MGD137 devices though? is it tested with SZcard ver.3? it didn't work for me, but like i said, it got me started.
here's my findings:
after hours of google i found something that may be similar to the M6MGD137 -- http://pdfdata.datasheetsite.com/web/54538/MX28F640C3T.pdf
after messing with that for awhile and seeing that the pre-flashed GBA game is gone, i got excited but things still weren't working out.
using the routines in this data sheet -- locked sectors can be written to, and there is no need to erase a block.
so the only thing ya need is a write routine, which does work from this data sheet. the manuf code returns 0x90 (uh, that's the code i wrote to 0x8000000 to try to read the manuf code though, so i wouldn't trust it)
here's the code i use to program. nothing else is needed i guess... :)
Code: |
void ProgramWord(u32 address, u16 data)
{
u8 i = 0;
*(u16 *)0x8000000 = 0x40; // word write mode.
*(u16 *)(0x8000000 + address) = data; // word!
// we're automatically in status register read mode. wait for 'ready bit'
while (!(*(u16 *)(0x8000000) & 0x80)) {
printf("%c\x1B[1D", progress[i=((i>3)?0:(i+1))]);
}
}
|
i was adding my test code into tftpds (wifi file transfer thing) but all the testing i just started a small stub. gonna get a fresh copy of tftpds to hack again and let ya know (if anyone cares or finds this useful later) how it works. i'm excited. i saved the time/money of getting/borrowing a parallel port equipped PC and a GBA, but wasted 3 days at learning to program. lol.
#142408 - josath - Mon Oct 08, 2007 11:29 pm
mute wrote: |
i was adding my test code into tftpds (wifi file transfer thing) but all the testing i just started a small stub. gonna get a fresh copy of tftpds to hack again and let ya know (if anyone cares or finds this useful later) how it works. i'm excited. i saved the time/money of getting/borrowing a parallel port equipped PC and a GBA, but wasted 3 days at learning to program. lol. |
Very cool, I'm definitely interested. Please be sure to post the entire code / NDS somewhere. Too bad I already bought an old GBA off ebay to do my flashing :P
#142424 - chuma - Tue Oct 09, 2007 1:47 am
Nice! I'm totally interested too. I have a GBA or two for flashing but my real problem is I don't run Windows on any of my home PCs, and only one of my machines at work has Windows *and* an EPP compatible parallel port.
#142432 - mute - Tue Oct 09, 2007 3:47 am
i'm a total n00b. i had something working. for some reason i thought i could take some routines out, and it seemed to work fine. wth was i thinking i didn't have to run eraseSector? ha! it worked before because of my test data... you can add 0's but not 1's... or the inverse, whatever...
integration into TFTPDS didn't work... so after 5 hours re-learning everything... ;) even newer ways to setup the console video. all the tutorials are for graphics guys. i just wanna print some text... anyway.
i think my test app is working 100% again. i'm going to include a small .gba demo into a binary string for testing with real data (found a neat 2kB one), then try again with tftpds. :)
#142436 - mute - Tue Oct 09, 2007 4:39 am
i finally got a binary to boot!
ok... i converted the smallest demo i got when i googled for "gba demos" into a C structure which is hardcoded into my test program. i ran gbafix on plasma.bin from http://www.zophar.net/roms/gba.html it's 2kbyte.
i'd like for ya'll to test it out. http://scottn.us/SZcard.nds
at least let me know what you get for Manuf and Device. Mine is reading Manuf[0090] Device[00b9] consistently now that I'm doing things right. If ya get the same then I can add it to the cart detect routine in tftpds so it knows which routines to use instead of just blinding using these ones... :)
i added a lil warning before it erases and writes so you can turn off your DS beforehand if you don't want to do that...
-scott.
EDIT: i'm so glad i'm done with this, i can finally get back to playing Zelda! (yeah i bought it. $34.88 at walmart on release day, yay!)
#142445 - josath - Tue Oct 09, 2007 6:14 am
yeah, works for me too, this is great. hopefully you will release the source code as well, i know for me i'd prefer one that can read from DLDI, since I don't have a wifi setup going right now. I also get 90/b9 as the manuf/dev IDs.
#142458 - mute - Tue Oct 09, 2007 9:45 am
sweet! i don't know anything about reading files from slot1... it prob don't be very hard though, of course tftpds first for me since it's a quick hack... it includes a neat gui lib that'll make listing/selecting files really easy though. and i'm sure a DLDI tutorial is available somewhere. shouldn't be too hard to learn, but def will take away some Zelda playing time. :)
that's cool we get the manuf/devid the same, although i'm wondering why manuf is always 0x90 since i got 0x90 / 0x60 for my EZ 3-in-1 but i'm certain using cartlib.c from FLinker read it as 0x2e... errr. =\
source code is no prob.. it's nothing pretty mind you. so maybe i'll wait until it actually reads files. :)
-scott.
#142466 - tepples - Tue Oct 09, 2007 12:44 pm
mute wrote: |
sweet! i don't know anything about reading files from slot1 |
After calling fatInitDefault() to mount the file system, you can open files with fopen() just like on PC, and you can read folders with diropen(). See libfat docs.
Or you start from the source code of GBALdr? (Use Google; the author doesn't have a web site and some of the sites carrying its news are "piracy related".)
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#142512 - phonymike - Tue Oct 09, 2007 9:49 pm
it's good to see interest in these things again. it seems KeithE gave me the cheap pirated carts ;) I do use SPLINK, and got the routines from the multiboot image ripped from the exe (not the menu programmed to the cart, all that does is bankswitch, this one has all the chip functions in it.) however none of my carts have any writing on them, and have a different layout. here's an image. sorry for the out of focus, the flash chip (nand nor whatever) is MSP55LV128, so maybe its erase/program routines are a little different. I have 5 of the bottom cart, and 1 of the one on top. the one with a glop top has the sram chip below, and the one with the sram chip on top has the glop top on the underside. all of these carts work identical and perfectly for me. I do have a test rom, it's dated about three months ago (look at the rom with a hex editor ;) and you can get it here or here. when flashed to all of my carts, it displays "7E1200 08". once you see the number on screen, you can remove the cart and insert another. all my visoly cards reboot the gba but these anyu or whatever carts don't for me, I can hot swap them all day and the number will update, you only need to flash one cart. now if the cart ID read routine doesn't work on your cart, I guess you'll see "00A3BE AE" or any sort of other numbers that are more than just 1 or 2 off from the 4 I posted. the 7E1200 is device id 0, 1, and 2. the 08 is id 3, it apparently doesn't mean anything, but I display it just because it shows up. the manuf id is 04 for Fujitsu so I didn't bother showing it.
now here's the killer. when I made the C code from the assembly, I broke down the commands to only what it takes to run on my cart. please don't be mad, I thought the chinese hackers or whoever were up to their old tricks. with other various datasheets on similar chips, I created this code that runs great for me. so if you look at all the addresses and values written, they're mostly 0xAAAA, 0x5555, 0x800AAAA, 0x8015554. also 0x555, 0xAAA. so these values work for me, however isn't exactly what's in the original code. like the ADDR_PROGRAM define might actually be 0xAAAA instead of 0xAAA, so I figured the pirates were trying to hide their code. some addresses were 0x8015544 but work fine for me as 0x8015554 and they all match and are all pretty and shit. I'll go through it again and make a direct port, I also think timing may be an issue, again they had little loops after certain commands to waste time, the use of volatile would be very helpful for this as ps2aich pointed out to me *smacks forehead* you guys want the raw asm code?
#142520 - mute - Wed Oct 10, 2007 12:09 am
tepples wrote: |
After calling fatInitDefault() to mount the file system, you can open files with fopen() just like on PC, and you can read folders with diropen(). See libfat docs. |
yeah i found it when i got home from work. it's been awhile since i've done any programming. but i got a quick 'while (fread()) programWord' in my test in just minutes... thing is it's taking years to write... when/if it finishes i'll see about writing a few bytes before waiting for the ready bit, so i don't wait so much... may help.
tepples wrote: |
Or you start from the source code of GBALdr? |
that's an awesome idea. i had downloaded it last week and deleted it thinking, ah i don't need it i have Rudolph's stuff... but yeah. definitely a good program to just patch our routines into. should be something i'm actually able to do as well. :)
btw, here are the two routines:
Code: |
void ProgramWord(u32 address, u16 data)
{
*(u16 *)0x8000000 = 0x40; // word write mode.
*(u16 *)(0x8000000 + address) = data; // word!
// we're automatically in status register read mode.
while (!(*(u16 *)(0x8000000) & 0x80)) ;
} |
Code: |
void eraseSector(u32 address)
{
*(u16 *)0x8000000 = 0x20;
*(u16 *)(0x8000002 + (address & 0xFFFF000)) = 0xD0;
while (!(*(u16 *)(0x8000000) & 0x80)) ;
} |
#142524 - mute - Wed Oct 10, 2007 1:00 am
okay wow... how long does it take to program one of these things using SPLINK?
i'm reading the file 2k at a time, then writing...
it takes about 15sec to write the 2k block, so about 136bps.
7187112 bytes / 136 bps = 15 hours...
okay, wonder what happens if i don't wait for the ready bit...
#142525 - josath - Wed Oct 10, 2007 1:12 am
mute wrote: |
okay wow... how long does it take to program one of these things using SPLINK?
i'm reading the file 2k at a time, then writing...
it takes about 15sec to write the 2k block, so about 136bps.
7187112 bytes / 136 bps = 15 hours...
okay, wonder what happens if i don't wait for the ready bit... |
Try using GBA_BUS instead of (u16 *)0x8000000. eg:
Code: |
GBA_BUS[0] = 0x40;
GBA_BUS[address>>1] = data; // need to divide by two, since GBA_BUS is a vuint16, and I'm assuming your addresses are in bytes, not words.
|
GBA_BUS is defined as volatile, perhaps without it, the CPU is caching the data you are reading from the status register, and thus it stays in the 'not ready' mode for much longer than it should. Plus as a bonus you get rid of a few evil magic numbers :)
Or maybe instead of checking for the ready bit, you could try reading the data back, and make sure it matches? I dunno how these things work.
I'll time SPLINK tonight, it's not all that fast, but it definately finishes in less than 15 hours...I think it takes a couple minutes for a 2MB file, if I remember correctly.
#142529 - mute - Wed Oct 10, 2007 2:21 am
hmm... i dunno what all that means, but i looked at GBALdr's 3in1.c and it uses *(vu16 *)0x8000000 so i changed mine to use that 'v' too...
and i tried waiting for ready after each 2k block instead of after every 16 bit write, and it went fast! i think i'm having problems with my erase timing now though. my rom didn't boot. adding some verify routines now to find out where cos searching myself takes too long. i think after i get this to just write a single hard-coded filename rom... i'm done.
i mean, it was a $10 card, and once i get a single ROM on it to give to a friends -- i'm done. i don't need a fancy menu a la gbaldr.
=\
#142534 - mute - Wed Oct 10, 2007 2:50 am
no wonder i am confused. it's acting like two x8 chips in paired configuration from what the Common Flash Interface manual tells me. which explains the size reply of 2^23 bytes (8MiB). means i need to interleave my erase routines, eh. maybe that'd explain the failed flashes, err!
guess i'll have it done soon. wish i knew how to swap rom pages though... SPLINK write multi-boot on these? send me a dump! :)
-scott.
#142825 - mute - Sun Oct 14, 2007 3:29 am
link to the binary: gbaldr szcard
just back from weekend out-of-state. i finally got a rom to load. gbaldr's bootGBA isn't working for me, but restart my NDS and it boots normal from there... it uses the last page of SRAM to hold loader data. my chip is 2Mbit, or 256K. and I have no info on any bank switching, ... I'm not concerned with switching games on-the-fly, so prob won't mess with it, but honestly it could just save games to their TITLE-SERIAL.SAV w/o worrying about filepaths/names... i _may_ mess with that... but anyway!
first!! make sure to change the blocksize used in flash.c, search for Block_Erase. the important part is the blocks are 0x10000 in length, not 0x40000. (why didn't they use the LEN define, der?)
Code: |
for(u32 kk=0; kk <= size && kk < MAX_NOR; kk+=0x10000)
{
updateProgress(ERASEBAR, CLEARBAR, kk * 100 / size);
Block_Erase(kk);
}
|
there's also two defines in flash.h:
Code: |
#define LEN 0x10000 // 64kbyte sector size
#define MAX_NOR 0xFF8000 // 16MByte
|
here's what i did in 3in1.c:
Code: |
void Block_Erase(u32 address)
{
u16 i, status;
// first and last sectors are really 8 * 4k sectors.
if ((address == 0) || (address == 0xFF0000)) {
for (i = 1; i < 8; i++)
Block_Erase(i * 0x2000);
}
*(vu16 *)(0x8000000 + (address & 0xFFFFF000)) = 0x20;
*(vu16 *)(0x8000000 + (address & 0xFFFFF000)) = 0xD0;
while (!((status = *(vu16 *)(0x8000000 + address)) & 0x80))
;
}
void WriteNorFlash(u32 address,u8 *buffer,u32 size)
{
vu16 status;
register u32 i;
vu16 *buf = (vu16 *)buffer;
// todo: test page program: 256 bytes at once! write 0x41 then 128words.
for (i = 0; i < size/2; i++)
{
*(vu16 *)(0x8000000 + address + i * 2) = 0x40; // word write mode.
*(vu16 *)(0x8000000 + address + i * 2) = buf[i]; // word!
while (!((status = *(vu16 *)(0x8000000 + address + i * 2)) & 0x80))
;
}
// go back to read mode after writes.
*(vu16 *)(0x8000000 + address) = 0xFF;
}
uint32 ReadNorFlashID()
{
vu16 id1,id2;
*((vu16 *)(FlashBase)) = 0x90;
id1 = *((vu16 *)(FlashBase)) ;
id2 = *((vu16 *)(FlashBase+2)) ;
if((id1!=0x1C)||(id2!=0xB9))
return 0;
return 0x227E2218;
}
void chip_reset()
{
*((vu16 *)(FlashBase)) = 0xFF;
}
|
I just deleted everything inside of these functions:
OpenNorWrite CloseNorWrite SetSerial SetRompage SetRampage SetShake
#143204 - mute - Thu Oct 18, 2007 3:56 am
so is no one interested anymore? i'd really like a multi-rom dump so i can work on that now... =(
maybe eventually i'll find someone with a gba and a desktop pc to load it up with, but it'd certainly be nice! k tks.
#143206 - josath - Thu Oct 18, 2007 4:29 am
There was some bank switching in a previous post on this thread, have you tried that code out? If it doesn't work, I might be able to rig something up, but I'm not sure exactly how to get a dump of the multi-rom menu. Probably I'll hack something that reads from GBAROM and writes to a file using libfat.
#143215 - mute - Thu Oct 18, 2007 11:21 am
ah. gbaldr actually will dump if you hold 'R' when starting it.
the flash chip in the previous post used different write routines so i didn't even try the bank stuff.
#143237 - josath - Thu Oct 18, 2007 4:25 pm
ok, here is a dump holding 3 gba roms: http://h.davr.org/dump.rar
as far as speed, i flashed a 128mbit file (a homebrew rom with a bunch of garbage to the end to make it 8 megabytes), and it took 263 seconds, so about 31KB/sec transfer rate. this is running their client under vmware though, so faster speeds might be possible.
good work on the gbaldr thing, it's exactly what i was hoping for.
#143252 - tepples - Thu Oct 18, 2007 7:24 pm
josath wrote: |
as far as speed, i flashed a 128mbit file (a homebrew rom with a bunch of garbage to the end to make it 8 megabytes), and it took 263 seconds, so about 31KB/sec transfer rate. this is running their client under vmware though, so faster speeds might be possible. |
262 Kbps (32 KiB/s) is pretty much the fastest stable speed for GBA serial port communicating over a cable in "normal" (GBC) mode, so 31 KiB/s is about right. (The GBA serial port can go faster than that for directly attached devices.)
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#143261 - mute - Thu Oct 18, 2007 9:51 pm
thanks. i checked it out, used the same routines as posted by mike, but the banks were all jacked up and didn't work for me. using phonymike's #s worked for me though. did my gbaldr bin work on your card? Mine is SZcard ver.1, is yours a different version?
josath wrote: |
as far as speed, i flashed a 128mbit file (a homebrew rom with a bunch of garbage to the end to make it 8 megabytes), and it took 263 seconds, so about 31KB/sec transfer rate. |
i wrote 16M exact in 270sec = 60KB/sec, but just before was ~15M at 283sec = 55KB/sec. so the in-system programming is useful for a nearly double speed gain :D
tftpds, my original intended program to modify, comes with a small gbamenu. i edited it, and then padded it to 64kB. then i just did a copy /b gbamenu.rom+rom1.gba+rom2.gba+rom3.gba multiboot.gba. the result is a working menu, but it scans memory for ROMs, so they show up 2-4 times a piece due to size, and mirroring. this is great tho. i did not touch SRAM stuff yet, but i'm certain it'll do well.
so now the question is, how to put multi-rom burning into a small screen interface? no way i'm doing windows style drag & drop! heh. i don't think gbaldr's UI will do well. i'm thinking something like this image that i hacked up really quick in mspaint. layout-wise i think it's rather functional. of course i may require assistance at making it visually ... tolerable... ;)
Then have it where you can press L to change selection from files on slot1, to roms on slot2, allowing you to see their info, adding an "SRAM slot/size" to the info box, and the buttons available to the right would be: (A)Launch, (B)Erase..., (X)Write SRAM to file, (Y)Write file to SRAM.
Buttons would be just 4 hard-coded areas so touchscreen would be feasible for even myself! :P
That all ought to keep me busy learning graphics stuff for awhile... :)
Think it's a bit overkill? I'm just doing it for the learning experience... I've a good bit of free time.
#143329 - josath - Fri Oct 19, 2007 5:20 pm
gbaldr szcard works for me (it writes the cart just fine, though there does seem to be a significant delay while it detects the cart or something...when I first tell it to write, it delays for quite a while before do anything)
But for some reason with my 128mbit test file, it wont do anything...i press A to select then A to write, and it instantly says "Done writing". Perhaps some bug, when the gba file is exactly equal to the cart size?
Also, if i look up the gba slot connector, I see "SZcard. ver. 3" printed on the lower right of the PCB.
EDIT: Actually...after writing two files, it no longer works. Now it always hangs at 'Writing SRAM 0%'...which is odd, since I don't even want to write SRAM, I want to write the NOR
EDIT 2: It still works on another cart (i have 5)...there's probably some bug in gbaldr. I might just comment out the SRAM stuff in it.
#143333 - josath - Fri Oct 19, 2007 8:25 pm
you know, if you change the contents of your post, you should leave a note...otherwise i keep thinking i'm going crazy when i read something and i remember something else being there instead :P
#143336 - mute - Fri Oct 19, 2007 9:05 pm
yeah it did autosave SRAM when you write a file. i turned that off by default later. i also had MAX_NOR set wrong in the first build. if it says "SZcard patch v2" it should work. i am not sure why the big delay with the SRAM write to file, i messed with it a bit... *shrug* will be re-doing some things so it'll write out this lil 32kB menu and hopefully have that fixed too. i'll never grasp graphics so the bottom screen status stuff will just have to be indefinitely on hold. =(
edit: hah. yah, sorry. i feel like that post was too big and it ended up having 3 edits so i disregarded the normal protocol of identifying my edits and slimmed it down a bit. i'm a re-n00b at programming so i get a bit excited and write too much i guess.
edit2: when i decided to use just the first 64k of SRAM and got rid of the "oncart" data saved in the last page, there ended up being a strlen() done on NULL which created the delay. fixed. version 3.
#143401 - mute - Sat Oct 20, 2007 7:44 pm
i'm done with this for now. it does everything i need. added multi-rom stuff. rar'd it up with binaries and source.
version 4
#145321 - KeithE - Wed Nov 14, 2007 1:28 am
Stock update: all the 128mb cartridges are gone. Here is what I have left:
5 parallel port cables (can be used as xboo cables) - $3 each
7 512 mb cartridges - $15 each
2 USB linkers - $10 each
2 non-working 512mb cartridges and USB linkers - $10 for all
USA shipping - $5 per order (not per cartridge)
outside USA shipping - $20 per order (not per cartridge)
20% ($30) discount if you buy it all.
#146462 - KeithE - Tue Dec 04, 2007 2:45 pm
I'm placing another order, so if anyone wants to order 128mb cartridges please let me know.
I'll be ordering in one week - on December 11th. Sorry for the short notice.
#146592 - ScottLininger - Thu Dec 06, 2007 3:14 pm
Keith,
Awesome. I'd like to buy 100 more.
Are they still $9 a piece? Let me know how I should send you payment. You can email me directly, PM me, or whatever.
scott<zat>scottlininger.com
-Scott
_________________
Some of my GBA projects
#146594 - josath - Thu Dec 06, 2007 4:43 pm
ScottLininger wrote: |
Keith,
Awesome. I'd like to buy 100 more.
Are they still $9 a piece? Let me know how I should send you payment. You can email me directly, PM me, or whatever.
scott<zat>scottlininger.com
-Scott |
If you're gonna buy so many, might be better to get them direct, save a couple $ per cart.
#146595 - Patater - Thu Dec 06, 2007 4:51 pm
Quote: |
might be better to get them direct, save a couple $ per cart. |
So KeithE is making a couple dollars profit per cart? Very nice margins. I don't know how we'd be able to get them direct. KeithE probably doesn't want to let you know of his supplier if he's making so much profit on this product. KeithE might give you a volume discount, though.
:p
#146618 - ScottLininger - Thu Dec 06, 2007 9:25 pm
Keith organized this before, and my experience was awesome. The fact that he's willing to handle all of the headaches of making the order is well worth a "service fee", even if he wanted to charge such a thing.
:)
-Scott
_________________
Some of my GBA projects
#156376 - KeithE - Fri May 09, 2008 2:03 am
Status update:
I'm not planning to place any more orders for GBA cartridges any time in the near future. The supplier that I was using has not been responding to my emails, and I'm not planning to search for a new supplier. It was fun while it lasted...
#156677 - gauauu - Mon May 12, 2008 4:51 pm
Now that KeithE's source has dried up, does anybody have a source for relatively cheap gba flash carts?
Right now, the cheapest thing I can find on most shops seems to be this:
Retailer link removed...rules etc - MOD -- which claims that it works as a standalone gba flash cart.
Has anybody used that thing to know if it works nicely as a basic gba flash cart, even though it has all that fancy DS functionality in it as well?
Or has anybody found a cheaper source for gba flash carts?
#157035 - gauauu - Sun May 18, 2008 12:23 am
<rant>Well mods, thanks for changing my message in a way where it's suddenly a pointless message, but there's no indicator that anybody had posted after me, so I was waiting for a response without realizing that it had been changed.
By the way, are these rules actually posted anywhere other than the DS forums? I don't do DS development, so I don't read those forums. If these rules are going to be enforced across the whole board, they should probably be posted somewhere that obviously applies to the whole thing.
About retailer links: the rules in the DS forum just as clearly state that mods should replace links to retailers with links to the retailer feedback section, but that didn't happen...</rant>
That being said, in answer to my own question, there is a store that sells gba flash carts for cheap:
http://forum.gbadev.org/viewtopic.php?t=14429
#157384 - no2pencil - Fri May 23, 2008 6:51 am
Thank you for the link!
_________________
-#2pencil