Swirly-working is a project mainly written in SHELL and C++, based on the GPL-2.0 license.
Swirly, an unfinished Dreamcast emulator - older version
Copyright (c)2001 Tom Joseph - [email protected]
Website: http://swirly.sourceforge.net
First get the latest SDL runtime from http://www.libsdl.org and install it.
You need to provide an IP.BIN for Swirly to run. Marcus Comstedt's IP.BIN creator works - get it at http://mc.pp.se/dc. Swirly comes with a boot ROM image and a sample program to run.
Swirly CANNOT run commercial games!
The TRAPA instruction causes an unconditional break in execution. Use it to break at the beginning of new untested routines you write so you can follow their execution step-by-step without having to know where they are in memory first.
The boot ROM provided with Swirly sucks and it doesn't fake very many syscalls.
Look at main.cpp to see how to load your own programs. They should be compiled in flat binary format and loaded into the proper location in memory with Overlord::load(). You'll have to modify main.cpp to change the files that Swirly loads.
Swirly reports that it has a VGA box connected to it when programs read the hardware register BSC.PDTRA.
You need to have the SDL development library and headers installed. Get them from http://www.libsdl.org. By the way, SDL is an excellent cross-platform library for video, sound, and some other things. It greatly eased development of Swirly.
Do the standard "configure; make" stuff. I have never done "make install" with Swirly and you probably won't either.
Swirly comes with its own crappy debugger. I really should try and get Swirly to interface with GDB; I bet that would help a lot.
Anyway, here are some commands you can use in Swirly's debugger. Numbers and addresses you type in should be in hex (except for the parameter to bc).
g - g means Go.
df - Draw Frame. Updates the screen from the framebuffer. Try this if you don't see the
results of writing to the framebuffer.
bx
bc
To single step, simply press Enter instead of typing a command.
Dreamcast is a trademark of Sega. Neither Swirly nor I are associated with Sega. Other trademarks are trademarks of their respective owners; no infringement is intended.
Swirly is NOT written in order to play commercial games. It is being written in order to help the cause of amateur Dreamcast hackers who want to write demos and such for the Dreamcast. Neither Swirly nor I have anything to do with the "warez" scene and I have no intent to unlawfully use Sega's or anybody else's intellectual property. I don't know how to copy GDROMs or any of that crap so don't ask.
Marcus Comstedt, Dan Potter, Lars Olsson - for their excellent hacking efforts and code.