Hi, all,
This is my first post here. I think I firstly need to say a huge THANKS to SWAT for his work on Dreamshell.
I'm only just starting to appreciate how difficult and time consuming it is to debug this stuff. Also well done on getting ISOs to boot!
OK, where do I start? I'm not sure if anyone has seen the efforts of us guys over at assembergames?...
http://www.assemblergames.com/forums/sho...roup/page8
We're still trying to find a solution for replacing the GDD with CF or HDD...
Originally, I was trying to get an FPGA to replace the GDD natively. This would allow GDI images to boot and the DC wouldn't be able to tell the difference.
I got quite far with that, but could never get it to boot past the SEGA license screen?
So, with @cybdyn's suggestion, I started looking into the actual GD syscalls...
(@cybdyn has done some great work with getting the Playstation based consoles to boot from his FPGA board. In time, we're hoping we can emulate the DC GDD and others too.)
First, I added a Flash BIOS upgrade to my DC and I'm now running DS "Bootloader with BIOS" so I can quickly test my code via SD Card under DS.
This was a big step for me, and DS makes it MUCH easier to debug code. (Thanks again, SWAT!).
Anyway, to cut a long story short, I currently have a CF card connected DIRECTLY to the G1 port.
The IDE-to-CF adapter is set as Slave, so I can now leave the GDD plugged in at the same time.
I'm currently able to DMA data from the CF card into DC RAM, and I can even DMA raw binary files from CF into memory and run those too.
This also works with a full-sized (or laptop) hard drive.
(The DC PSU could probably handle a small capacity 3.5", but I wouldn't want to push it too far).
I haven't got DMA to work from the GDD yet, but I can still read from a GD via PIO mode (and switch between GD PIO and ATA DMA).
So, @SWAT - would it be possible for you to add support for this in DS at some point?
I can send you the code as it is, although there are a few issues to sort out still (eg. it gets stuck if you try to poll for the end-of-DMA, so I need to add a delay instead).
The netBSD code is interesting too. If most of the routines are in place for PIO, I might try to add the G1 DMA routines to it.
@abs - I could send you some code too? The routines for DMA are probably much simpler than for the G2 bus.
Oh, I've also tried adding GD syscall redirect stuff to the code. I have spoofed a GD TOC and it appears to read the same as a real GD TOC.
I've tried loading a 1ST_READ.BIN from CF, then starting the IP.BIN Bootstrap1, but the DC will either show the license screen then reboot, or just a black screen?
@SWAT - you no doubt know more about the syscall stuff. I'm excited to talk to you about the code etc.
Regards,
OzOnE.
EDIT: Forgot to mention - I had to solder the IDE cable directly to the test pads on my DC for now. I did start doing a basic PCB layout for some G1-to-IDE adapters, but I've been busy with the code instead of finishing the PCB.