Home | Forums | What's new | Resources | |
My new project is up! |
mrkotfw - Oct 9, 2006 |
< Prev | 1 | ... | 7 | 8 | 9 |
Chilly Willy | Jul 10, 2012 | |||||
I'm trying to get one of those carts, too. |
mrkotfw | Jul 10, 2012 | |||||
The development cycle is just as fast as launching Yabause immediately after compiling a test application. Using Anders' cart ROM, I've noticed some flakiness when jumping back to 0x22000F00. But I'll investigate that for later. Sometimes it hangs. Other times the Master core raises an exception. But that should be fixable by just jumping back to 0x22000F00 Looks like Sega Saturn development is making some small leaps |
Chilly Willy | Jul 10, 2012 | |||||
Having good tools tends to make development a bit better. As to jumping back to 0x22000F00 being flakey, maybe some of the hardware isn't in a correct state for what that entry expects, and something isn't set that should be, or is set in a way that conflicts with how is WAS set previously. Cleanup on program exit is always a bitch. |
mrkotfw | Jul 10, 2012 | |||||
That's what I'm thinking, but really at that address, that's the start of the cart ROM after Sega's AIP. I don't know, maybe I have to wait a second or two until it's ready? |
antime | Jul 10, 2012 | |||
The cartridge ROM is built to be executed rom workram-H, where the Saturn ROM loads it. Since there are hardcoded addresses in the binary, trying to run directly from the cartridge will almost certainly fail. Since the "execute" command uses a normal C subroutine call you can just return from your code if you don't want to reset the machine, as long as you don't overwrite the memory used by the loader. |
Chilly Willy | Jul 10, 2012 | |||||
And what memory is used by the loader? Having a map of the launch environment will help with making sure the sdk doesn't kill something accidentally. |
cafe-alpha | Jul 11, 2012 | |||||
If you are interested, I can add some code that has the same behaviour as antime's firmware, but run directly from ARP ROM: 0x02000000 : IP + original firmware that runs from HRAM 0x0203C000 : Code that run directly from ROM Hence, your program don't need to care about detroying RAM needed for firmware, but need to call a specific address (0x0203C000) when exiting. For mrkotfw : upgrading firmware can be done by simply uploading and executing a Saturn binary via USB dev cart, so that using modchip'd Saturn, burning CD-R, etc is not needed. |
antime | Jul 11, 2012 | |||
The IP Size field in the header gives the size of the IP(!), plus a few words of stack. |
mrkotfw | Jul 16, 2012 | |||||
So you'll just be appending the same executable at 0x2203C000? Sounds good to me. Send me the executable.. I'm too lazy to do it myself |
mrkotfw | Jul 16, 2012 | |||
In other news, GDB support using the USB cartridge is about 75% complete (it's in the repos) Stepping through is still buggy but it works. I'll be adding breakpoints through GDB after I can get the stub to work with unconditional jumps. Everything is still a bit flaky. The only thing particular about GDB support is that I had to write a GDB proxy only because I had trouble having GDB communicate directly with the USB cartridge (via /dev/ttyUSB0). So the setup is like so: Saturn <-> GDB-stub <-> USB-cartridge <-> GDB-proxy <-> TCP socket <-> GDB-client The GDB proxy is a major hack and I won't be adding it until I either clean it up or add support for the Saturn into GDB directly (via a patch). But if you absolutely must have the GDB proxy code, here it is: http://sprunge.us/fdQF?c... 1. Use gdb_init() in your application to start GDB 2. Compile and transfer the app to the Saturn 3. Start the GDB proxy: ./gdb-proxy 2000 4. Start GDB 5. Type the following commands in GDB (you can add this to ".gdbinit") set debug remote 0 set remote supported-packets off target remote :2000 layout split run And you'll be set! |
Chilly Willy | Jul 16, 2012 | |||
I'll check it out when I get the cart. Last check showed it was in Osaka. |
cafe-alpha | Jul 23, 2012 | ||||||||
I gathered stuff regarding USB dev cart in the following page : http://ppcenter.free.fr/satcart/... Inside, there is a modified firmware that runs from ROM (usb_cartrom_20120723.7z) and instructions about how to update firmware (you need to execute flasher.bin from 0x06004000 address). (*) I changed the ROM executable start address to 0x0203F800, and use ROM last byte data to check whether executable is present or not :
Code:
I also added the following (useless ?) features : - Any key makes returning to BIOS multiplayer screen - Screen blinks instead of displaying a single color : simple way to check if firmware hanged or not Feel free to use this firmware for your Saturn projects |
mrkotfw | Jul 29, 2012 | |||
Sorry guys, I've been fairly busy as of late. |
Chilly Willy | Jul 30, 2012 | |||
No problem - most of the rest of us have been, too! |
vbt | Aug 4, 2012 | |||
Piratero, I will try your lib |
mrkotfw | Aug 6, 2012 | |||||
Glad to hear it. Let me know if all works well for you. |
vbt | Dec 28, 2018 | |||
@mrkotfw... did you manage to get indirect dma working with libyaul? |
mrkotfw | Jan 6, 2019 | |||
Yes, indirect SCU-DMA... has been working for a while. |
< Prev | 1 | ... | 7 | 8 | 9 |