dcemu runs first homebrew game
-
- DC Developer
- Posts: 47
- https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
- Joined: Tue Aug 26, 2003 1:54 pm
- Location: Santiago, CL
- Has thanked: 0
- Been thanked: 0
- Contact:
dcemu runs first homebrew game
screenshots from dcemu running 'efecero' beta 3: (avilable in homebrew.dcemulation.org)
it's barely playable but it works. that game doesn't seem to use 3d graphics but it's a game anyway and it WORKS!
download the CVS sources from http://sf.net/projects/dcemu.
it's barely playable but it works. that game doesn't seem to use 3d graphics but it's a game anyway and it WORKS!
download the CVS sources from http://sf.net/projects/dcemu.
- Dr. Zoidberg
- The Filth
- Posts: 3536
- Joined: Tue Dec 04, 2001 1:09 am
- Has thanked: 4 times
- Been thanked: 0
- Contact:
- Quzar
- Dream Coder
- Posts: 7499
- Joined: Wed Jul 31, 2002 12:14 am
- Location: Miami, FL
- Has thanked: 4 times
- Been thanked: 10 times
- Contact:
This does make it the first released Dreamcast emulator to play anything right? I know 'unreleased' emulators have played homebrew and even commercial games, but none of the (few) released emulators (afaik) play any. this is good stuff...
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
Nice one itoledo.
After spending around an hour solving the problem with my 3D hardware (the AGP drivers were causing X11 to lock up whenever I used the NVidia 3D drivers, so I was stuck with the XFree86 2D drivers - now solved by using the NVidia AGP drivers instead of the Linux ones), I managed to get it to compile under Linux. Needed quite a lot of code changes, or at least a lot more than last time. I'll send a patch your way later, if I can get it to compile under Windows and Linux without breaking anything.
However... It needs a BIOS image?
Edit: It works! It's quite slow (like 1FPS running the Bubbles demo), but it works...
Edit 2: I can't get it to run anything that doesn't use the 3D hardware. I disabled the OpenGL support by undefining OPENGL in options.h, but when I run anything 2D, I just get the debug console, and that's about it.
After spending around an hour solving the problem with my 3D hardware (the AGP drivers were causing X11 to lock up whenever I used the NVidia 3D drivers, so I was stuck with the XFree86 2D drivers - now solved by using the NVidia AGP drivers instead of the Linux ones), I managed to get it to compile under Linux. Needed quite a lot of code changes, or at least a lot more than last time. I'll send a patch your way later, if I can get it to compile under Windows and Linux without breaking anything.
However... It needs a BIOS image?
Edit: It works! It's quite slow (like 1FPS running the Bubbles demo), but it works...
Edit 2: I can't get it to run anything that doesn't use the 3D hardware. I disabled the OpenGL support by undefining OPENGL in options.h, but when I run anything 2D, I just get the debug console, and that's about it.
-
- DC Developer
- Posts: 47
- Joined: Tue Aug 26, 2003 1:54 pm
- Location: Santiago, CL
- Has thanked: 0
- Been thanked: 0
- Contact:
the #define OPENGL stuff is "deprecated"
in windows when the emulator switches to 3d it stops updating the framebuffer. the emulator is creating an SDL surface with the specified framebuffer format for every framebuffer update. the problem is that if there's 3d going on (like vertex registration) if i blit the framebuffer it kills whatever 3d is going on so it starts looking like crap
of course i'll change that behaviour in the next days... btw if you can run 3d stuff, try the 'tunnel' or 'gltest' KGL demos. both are very slow but they work. also the pvr/plasma demo, it works fast.
the BIOS loading stuff is for using the BIOS fonts and that's it. if you remove bios loading and #undef USE_BIOS_FONT in options.h it should probably work because I have a function to generate a 'BIOS font' in runtime.
if you get the debug console press f12, f11 to start emulation.
also you can start running from IP.BIN now! it shows the SEGA logo but the text is replaced with _ _ _, still don't know why. search for this line in main.c:
replace with this line:
when I fix the GL stuff i'll make a 'formal' release in my page at http://alumnos.utem.cl/dcemu. if you want to test the code, try CVS; tortoisecvs is great for windows users. also if anyone wants to help just contact me at birdie@terra.cl .
in windows when the emulator switches to 3d it stops updating the framebuffer. the emulator is creating an SDL surface with the specified framebuffer format for every framebuffer update. the problem is that if there's 3d going on (like vertex registration) if i blit the framebuffer it kills whatever 3d is going on so it starts looking like crap
of course i'll change that behaviour in the next days... btw if you can run 3d stuff, try the 'tunnel' or 'gltest' KGL demos. both are very slow but they work. also the pvr/plasma demo, it works fast.
the BIOS loading stuff is for using the BIOS fonts and that's it. if you remove bios loading and #undef USE_BIOS_FONT in options.h it should probably work because I have a function to generate a 'BIOS font' in runtime.
if you get the debug console press f12, f11 to start emulation.
also you can start running from IP.BIN now! it shows the SEGA logo but the text is replaced with _ _ _, still don't know why. search for this line in main.c:
Code: Select all
PC = mem_base + ip_bs1_offset; // ip_bs1_offset; // + mem_offset;
Code: Select all
PC = 0x8c008300;
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
Well, that would explain it... 2D stuff seems to work now.the #define OPENGL stuff is "deprecated"
Thought as much. I just dropped in a 2MB blank file for the BIOS, and it worked fine. I found USE_BIOS_FONT, undefined it, and everything works fine again.the BIOS loading stuff is for using the BIOS fonts and that's it. if you remove bios loading and #undef USE_BIOS_FONT in options.h it should probably work because I have a function to generate a 'BIOS font' in runtime.
Oh, I can't get anything that uses the CD working. According to Ron in this thread you can create an ISO image, name it dc.iso and things will be able to run from it. So far, I've not managed to get that to work.
I just tried with Beats of Rage, and it hangs on a (corrupted - using the wrong resolution by the looks of it) loading screen indefinitely.
- Nyarlathotep
- Soul Sold for DCEmu
- Posts: 7390
- Joined: Sat Jan 05, 2002 1:37 pm
- Has thanked: 0
- Been thanked: 0
-
- DC Developer
- Posts: 47
- Joined: Tue Aug 26, 2003 1:54 pm
- Location: Santiago, CL
- Has thanked: 0
- Been thanked: 0
- Contact:
try to make the dc.iso using an 11700 offset (like a AUDIO-DATA selfboot, echelon style):
mkisofs -C 0,11700 -l -o dc.iso DIRECTORY
it works with Wowpack the selector looks fine but when any of the wowpacks is loaded the right side screen gets corrupted, don't know why.
also linux-dc (that old 2001 release) starts booting but hangs when uncompressing the initrd, probably waiting for an IRQ, didn't looked at the source yet.
mkisofs -C 0,11700 -l -o dc.iso DIRECTORY
it works with Wowpack the selector looks fine but when any of the wowpacks is loaded the right side screen gets corrupted, don't know why.
also linux-dc (that old 2001 release) starts booting but hangs when uncompressing the initrd, probably waiting for an IRQ, didn't looked at the source yet.
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
I did that. I guess that all the things I've tried that use the CD (Genesis Plus, Beats of Rage, a couple of other emulators) just don't work for some other reason. I'd guess that Genesis Plus is either running really slowly, or the DMA video buffer transfer is tripping over somewhere. I'll just write a program to list the contents of a CD over the serial cable, and try that out.
Interestingly, the BASIC interpreter I've been working on runs under DCEMU. It (still) just dumps the output of a load of PRINT statements over the serial cable (and into the serial log file), but it's enough to be able to see some programs running. I need to do some tests on that to make sure it works, and I don't have a serial cable or BBA at the moment, so it looks like I might be able to use DCEMU.
I also ran a couple of my 2D graphics demos through it, and they all worked the same as they do on a Dreamcast. I'm very impressed so far. This thing's run around half (or more) of the demos I've thrown at it, although I've not tried any games on it yet.
I'll clean up the modifications I made to get it to run on Linux and send them to ya later.
Interestingly, the BASIC interpreter I've been working on runs under DCEMU. It (still) just dumps the output of a load of PRINT statements over the serial cable (and into the serial log file), but it's enough to be able to see some programs running. I need to do some tests on that to make sure it works, and I don't have a serial cable or BBA at the moment, so it looks like I might be able to use DCEMU.
I also ran a couple of my 2D graphics demos through it, and they all worked the same as they do on a Dreamcast. I'm very impressed so far. This thing's run around half (or more) of the demos I've thrown at it, although I've not tried any games on it yet.
I'll clean up the modifications I made to get it to run on Linux and send them to ya later.
- curt_grymala
- Theme Inducer
- Posts: 4274
- Joined: Fri May 30, 2003 12:14 pm
- Location: Wherever I'm Needed
- Has thanked: 0
- Been thanked: 0
- Contact:
This is such incredible news. I am astounded, after years of basically nothing, that we are getting so much fantastic news from the "running DC on PC" front.
DCHelp - A Newbie's Best Friend
DC Evolution - Disc Images
DreamZone Forums
I Refuse To Help Anyone That Says They've Tried Everything.
DC Evolution - Disc Images
DreamZone Forums
I Refuse To Help Anyone That Says They've Tried Everything.
-
- DC Developer
- Posts: 47
- Joined: Tue Aug 26, 2003 1:54 pm
- Location: Santiago, CL
- Has thanked: 0
- Been thanked: 0
- Contact:
I don't have implemented DMA transfers yet, so that's why it doesn't work
store queues are implemented though, that's what KOS use in most of the demos anyway. once I figure out how DMA works (hint: HELP ME! ) i'll implement it.
also if anyone that works on DC software tries his/her software in the emulator and want to share ideas about why it does/doesn't work, just mail me! with all the talented coders here i know the emu can only improve (given enough time..,)
store queues are implemented though, that's what KOS use in most of the demos anyway. once I figure out how DMA works (hint: HELP ME! ) i'll implement it.
also if anyone that works on DC software tries his/her software in the emulator and want to share ideas about why it does/doesn't work, just mail me! with all the talented coders here i know the emu can only improve (given enough time..,)
-
- DCEmu Veteran
- Posts: 4306
- Joined: Sat Nov 30, 2002 7:01 pm
- Location: San Jose
- Has thanked: 0
- Been thanked: 0
- Contact:
-
- Damn Dirty Ape
- Posts: 5031
- Joined: Thu Nov 07, 2002 11:11 pm
- Location: Saugerties, NY
- Has thanked: 0
- Been thanked: 0
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
I guessed as much. It seemed to be going fine until it was ready to render the first frame, then it locked up waiting for the DMA transfer to complete (which is obviously never does). I think I still have an older version around here somewhere which uses store queues instead of DMA, so that might work. Other than the DMA, it doesn't really do anything unusual with the hardware.I don't have implemented DMA transfers yet, so that's why it doesn't work
Unfortunately, the 3D drivers on my main system have resumed locking up every thirty seconds or so, which means I can't test anything more. I'm going to try an older version of the drivers (ones that I know work correctly) and see if that fixes it. Until then, I can't really do much.
-
- Soul Sold for DCEmu
- Posts: 4865
- Joined: Fri Jul 11, 2003 9:56 pm
- Has thanked: 2 times
- Been thanked: 4 times