PDA

View Full Version : psx4dc discussion



zodttd
October 9th, 2006, 03:03
Attached is a private alpha of psx4dc.

psx4dc is a Playstation 1 emulator for the Dreamcast, using the psx4all source.

To use psx4dc with this release:
1. unzip the attachment.
2. Place scph1001.bin (PSX BIOS) in ./psx4dc_release/
*** IT IS REQUIRED ***
3. Place RAW format .BIN/.ISO ripped psx games in the ./psx4dc_release/games/ directory. PocketISO 2.0 compressed BIN files to .Z *might* work though are untested.
4. Run BootDreams.exe
5. Click the 4th icon at the top of BootDreams. It's for recording a CD with CDRecord.
6. Set the SelfBoot folder to ./psx4dc_release/
7. Set the CD Label to something such as: psx4dc
8. I leave Burn Speed to 1x, but it may be able to go as high as 8x depending on how good your media is and how well your burner does.
9. Disc Format should be: Data/Data
10. Place a blank CD in your CD drive.
11. Click Process.

Once done you have a psx4dc CD with your ISO's on it.
Run it on your DC.
Goto LOAD GAME/SAVESTATE. You select by pressing Y (it should be X I think but thats a later fix).
Goto the 3rd option for LOAD A GAME.
Navigate to the ISO. It should be in the games folder. Press Y. Press START. I feel stupid but I forgot to implement the SELECT button, will do that asap.

I'm not sure if the analog stick works, but the d-pad definitely does. The buttons might need to be remapped. The SELECT button needs to be mapped as does L2/R2. I'm going to use the START button as a modifier button. It will be used for things other than start when combined.

Basically, I'm amazed I got this working this fast. I never touched DC dev before. This is very cool. Let me know if this release works and how well. :)

Thanks!

quzar
October 9th, 2006, 03:18
I have yet to test this, but I would *STRONGLY* suggest having the final DC release be without game image support, and only have real disc reading.

Also, I'd love for you to reconsider your stance on the source release, as this is (admittedly) based on pcsx as the base emulator, as well as the fact that then I could help get things working (memcard saves and real CD loading aren't too hard on the DC once you know how ;) ).

zodttd
October 9th, 2006, 03:34
Quzar: Sorry about the unneeded PM.
Wait up here though. It started out as PCSX. There is only fragments of PCSX remaining. Basically what's used of PCSX is it's structure/framework. The only parts too difficult for me to redo is the cdrom code. :)

But even that part of it will be removed shortly. The interpreter isn't going to be used much longer, as the ARM Dynarec will be redone to be better optimized. The MIPS Dynarec works fine now. The SH4 dynarec though, is from PCSX, if you would like to redo it, please let me know. One of the reasons were still using the PCSX framework is due to the fact that the dynarec's I wrote are built upon it. I don't know SH4 assembly enough to optimize it, though I know it well enough to fix bugs I encountered when doing ARM's. I'm in talks with Unai about completely reorganizing and restructuring psx4all so any hint of GPL issues can't be made.

Is there reasons beyond the pirating talk on forums to not use ISO support?

Also, if you want to join psx4all, let me know. I'll talk to Unai and Tinnus and see what I can do! :)

Keep in mind Unai did the GPU and etc for Chankast. I believe he could help you out. ;)

quzar
October 9th, 2006, 03:39
The thing is, regardless of how much you change it, how much you replace it, unless you literally start from scratch, then you are bound by the GPL to release your sources. I don't see why that's such a problem. The PCSX team gave you an emulator to use as a base, the least you could do in thanks is honor their choice of license (aside from all the legal issues).

If you're using the SH code from pcsx, it's not a dynarec, it's just an asm interpreter, which is probably why it's so slow (relatively).

One of the other big reasons not to make it read isos is to help prevent bundled warez releases.

I would love to help with it, and could get those things I mentioned working (considering I messed around with pcsxdc a lot I should know close to where to hook things) but not if it's going to be closed source while based on a GPL'd program.

zodttd
October 9th, 2006, 04:13
Just hope you realise that by framework I mean the psxRegs struct. If renaming each variable in that struct is "writing from scratch" then I'll be sure to do that. If it comes down to it, I won't use the SH4 dynarec. Yes, it is a dynamic recompiler as it emits code into a buffer and executes it, then keeps it in a translation cache. The GTE was redone in SH4 assembly.

But since I know this will become a bigger issue than it should, I talked to Unai and we're working opening up the framework of psx4all. That way those structures and even the SH4 dynarec can be left open source, while Unai's GPU and such can be selected as either open or closed later by being used as a library.

This only slows down the progress of psx4all though, and keeps what leaves it in that questionable area inside psx4all. More of a pain than questioning honor of naming conventions, something GPL isn't in place for. Just my opinion on things.

Give psx4dc a try if you can though. There's a lot of work that needs to be done on it though.

Sigh.

quzar
October 9th, 2006, 04:17
I don't see how it would slow down development to simply release the sources...

No matter how much rewriting you do, since you originally started with pcsx, it is based on it.

I would test it out, but I don't currently have any playstation games with me, nor access to the bios.

Also, wow, I didn't know that it was a dynarec. I was always told it was an assembly interpreter. That's quite interesting.

zodttd
October 9th, 2006, 04:42
"No matter how much rewriting you do, since you originally started with pcsx, it is based on it. "

Umm huh? If you start with PCSX and rewrite the entire thing, you have a completely different program. Just because version 1 was PCSX, doesn't mean version 2 is under the GPL due to version 1 being PCSX. If version 2 is written from scratch, which is what a rewrite is, how is it under the GPL? Just wondering if that's what you we're meaning by that.

quzar
October 9th, 2006, 04:48
That's exactly what I meant by it. As far as I know, that's how it works. It makes sense considering even if you rewrite it, all the information contained within it is still preserved (their take on how the hardware works etc).

zodttd
October 9th, 2006, 04:50
Of course it slows down development by having to release sources. Because you then have the responsibility to maintain those sources each release, as well as make it available reliably, and usually land up giving technical support for that source.

If someone not related to development does it for psx4all, then it wouldn't be such an issue. But it's only 3 people.

Three people currently support psx4all on 6 (soon more) platforms. This is a very expansive project, and we're already stretched too thin. Having more work piled on that at least seems unreasonable, isn't looked well upon. But I understand it.

quzar
October 9th, 2006, 04:59
I would volunteer fully if it meant the open sourcing of the project. I really don't see how it's more work to release sources. Unlike professional programming, you don't have any kind of responsibility to make them cleaner or package them nicely for release, all you have to do is zip up exactly what you used to make the binary. You don't even have to provide any support at all, and the average person who asks about source code is quite a bit less annoying than the average end user who PMs you saying "WHEN IS THERE NEW RELEASE?" or "WHY IT SLOW? MAKEFAS TER!!!11".

Being opensource would be especially advantageous to a project like yours, because it can only serve to help lessen the load if only a small amount, and will most likely end up with psx4all being on even more platforms, just like how pcsx being open source has led it to be THE playstation emulator to be ported to other platforms.

zodttd
October 9th, 2006, 05:00
If methods of implementing something are used through looking at GPL code, it can break GPL. But I believe the concept behind the method is free use. Basically, we use freely available documentation to determine how something works, not by past code. If we don't understand something, we figure it out. That documentation is free for whatever use. So I don't believe that issue comes into play.

quzar
October 9th, 2006, 05:21
Well, it's up to you. Nobody is going to *force* you to release the sources, but if you're only reason not to is because of the hassle of doing so, I'd hope that you could see the benefits that being open source offer.

zodttd
October 9th, 2006, 05:37
Thanks for understanding. I am strongly thinking through how to release the sources. I've been planning on doing it for awhile. I just have been delaying things until the code get's cleaned up. That plan can be accelerated. :)

I just didn't want the stress of what happened to PSX-P to happen to psx4all, as though they are a bit different situations, people might not understand that.

I would prefer open sourcing the project, but until you, nobody was interested in working on it. Every once and awhile someone wanted the sources, but more-so just to bug us. :P

Darksaviour69
October 9th, 2006, 15:09
is it ok that i try it? i'm just an admin not a coder.

can i take pics and videos of it for the site?

wraggster
October 9th, 2006, 19:16
yeah my cd writer is ****ed at the mo so i cant try it out

whats the speed and compatibility like.

zodttd
October 9th, 2006, 19:20
Hi...Sure it's ok to give it a try! :)

I tested the build above and it had a lot of errors which I'm still in the process of fixing. But it runs Tactics Ogre pretty well. :P

Still, it's very slow for some games such as Ridge Racer. I am in the process of removing the SH4 dynarec and using something a little more appropriate for the DC. The DC can only handle about 4MB of cache for a dynarec, and the way that one was designed, it won't be very helpful.

quzar
October 9th, 2006, 19:22
Hi...Sure it's ok to give it a try! :)

I tested the build above and it had a lot of errors which I'm still in the process of fixing. But it runs Tactics Ogre pretty well. :P

Still, it's very slow for some games such as Ridge Racer. I am in the process of removing the SH4 dynarec and using something a little more appropriate for the DC. The DC can only handle about 4MB of cache for a dynarec, and the way that one was designed, it won't be very helpful.

How big of a cache would be needed for it to be useful? I'm sure the memory usage could be cut down by at LEAST 1.5mb by the few things you've described about it (read: if SDL were removed)

Kaiser
October 11th, 2006, 02:33
I'm very impressed. Didn't see any apparent graphic glitches. Very nice for just a beta. Here is some pics I took playing Silent Hill. Ignore the some of the blurr as that would just be my cameras long exposure time. Everything looked flawless to me aside from the speed.

Darksaviour69
October 11th, 2006, 09:36
nice one kaiser, let get a load of pic by the end of the week(friday) before we news post them, that should give the dc scene a kick in the ass

zodttd
October 11th, 2006, 19:57
New build of psx4dc...

In Build #2 compatibility has changed, most likely becoming better. Performance has increased, but not enough to make things playable. It's about as fast as the GP2X release on average.

I removed the recompiler, and this is using a very optimized interpreter.

For those releasing videos of psx4dc's progress, definitely try out this release as it will most likely "look better".

There's a lot to be fixed and done for this port. Most likely psx4all will need to be improved quite a bit further still for psx4dc to become feasible, but it's definitely fun. :)

Darksaviour69
October 12th, 2006, 09:49
thanks zodttd, i'll pass this on the othe other staff