|
Post by whitetigerx7 on Jan 29, 2006 22:57:52 GMT -5
Love the emulator and I'll say this... it's about time someone make a good emulator like CVGS was. Small, compact, and compatible, but bells and whistles are nice but they have to be kept small and non-intrusive.
Anyway here's some ideas for you to look into and they may help with some issues like speed, system compatibility, etc.
I had actually been doing some research a long time ago into using Josh Walker's PSX Documentation. He has an excellent bios op code readout list if you ever want to code in a bios to avoid using the spch1001.bin and do in-house modifications and bios reworking.
Anywho here's list of stuff you can think about considering for pSX. (some of it I had considered even for an emulator I had been building. It's nothing more than an defunct R3000A reader/debugger I abandoned a few years ago but I did have my own BIOS opcodes requiring no usage of the scph1001.bin BIOS. Some of it was a bit in the HLE department IMO.)
You stole my thunder... but thank you for doing what I couldn't get around to actually doing. It's great to know someone was thinking along the same lines as I was. =========================================
OpenGL rendering
Very low-level non-intrusive graphics API and it has great hardware acceleration and filtering abilities that could help with speed issues. Though DirectDraw is hardware accelerated in Windows it does have some drawbacks.
Ataptec ASPI layer support for CDROM
If you want the best CD/DVD-ROM device support ASPI is the way to go. Adaptec has a small SDK distributed with their driver package. It's a must have.
Support for multi-format memory cards like those from ePSXe and such
Nothing beats having a new favorite emulator when you can use a memory card file from one to the next without issues.
Go Open Source
It's a must have if you want to get development going faster and have multiple sources of input and ideas. The BSD License is possibly the most favorable and less restrictive IMO if you want to incorporate things like Kaillera Client support and things like GNU/GPL software.
Hope these help. And again thanks for the great work dude. I owe you a drink and a cigar dude.
|
|
|
Post by pSX Author on Jan 29, 2006 23:20:08 GMT -5
Hi, Thanks for the comments! Yeah - doing a native BIOS would be nice - its fairly low on my list of priorities though (and quite a lot of work). Luckily PS2 only has a very tiny BIOS so doing the same for that is pretty easy (when I finally get PS2 support working One downside of writing a native BIOS is that you lose the shell screen (unless you are willing to reimplement that too)... OpenGL support should be quite easy to add - I'll definately consider it (the emulator actually makes very little use of D3D - it mainly uses it to stretch a single texture onto the screen!). ASPI is supported - however: CD support does not work very well atm - I never use it myself so its kind of rotted over the years Memory cards from ePSXe are reportedly usable - you can either rename them to .bin, or just select them from the file dialog (you probably have to type *.mcr or *.* to make them visible). As for going open source - I don't plan to do this yet... this emulator is my pet project - I've been working on it for years - the only reason I haven't released it up to now is that I tend to spend more time playing games in it than developing I am willing to share the source with other emulator authors though (within reason). Thanks.
|
|
|
Post by whitetigerx7 on Jan 30, 2006 0:59:18 GMT -5
Well the best CD-ROM support I've ever gotten was from Pete Bernert's P.E.Op.S. CDR 1.4 plugin. You want documentation, help with APIs, etc, Pete's the man... I mean guru to talk to. LOL
His stuff is even Open Source on Sourceforge.net so getting help from that guy is probably a good idea if not great idea if you want CD-ROM support which by all accounts WILL be in your favor greatly. ISO images are way too large for convienence. A point well considered.
IOCTL scsi/raw support would really help. 2K/XP have this by default but it's not the best in comparison again ASPI scsi support. Basically sometimes drives aren't detected with IOCTL automatically but usually only older ones. This might be a good place to start if you want some CD-ROM support. IOCTL does have ATAPI support is scsi mode so at best this might be the best choice to consider.
If you want I have a copy still of Josh Walker's PDF readout file from his documentation on the Playstation console. My email is in my file as you are the moderator so you can get it so if you want to look at it, it has LOTS of stuff. You might find some of it useful and other stuff maybe not so much but every little bit helps. Let me know if you would like a copy. It's kinda hard to find anymore as most copies edited out the BIOS OpCodes.
Even then if you want here's an idea. Release the Current version ONLY sources, not your main WIP copy and start up a developers forum and ask around other emulation sites like ZSnes, Gens, and maybe even Pete himself. Let people test code and contribute code and all. If anything DO talk to Pete. He'll probably be more than willing to lend a hand.
|
|
|
Post by pSX Author on Jan 30, 2006 1:14:16 GMT -5
Hi,
All good points!
btw: the emulator already supports IOCTL (although it probably doesn't work well atm).
You can enable it with the -i command line option.
One problem with IOCTL is that it used to be quite rare to find a drive/driver that supported IOCTL_CDROM_RAW_READ which is necessary for reading XA sectors. I'm not sure what the story is these days (last time I tried it was probably a few years ago).
|
|
|
Post by Ultima on Jan 30, 2006 1:34:19 GMT -5
Hm... something else I thought of is that the PSX screen ratio should be maintained when you stretch the window (add black borders if needed). I manually changed the window size by mistake, and found it annoying to try and find (or at least estimate) the right size again. Maybe it can be set as an option...
|
|
|
Post by pSX Author on Jan 30, 2006 1:35:49 GMT -5
Yeah - I'll add a menu option for setting it to 100%, 200%, etc... I don't usually run it windowed so I've never really thought about it Full screen (alt+enter) will always have the correct aspect ratio.
|
|
|
Post by Ultima on Jan 30, 2006 1:43:36 GMT -5
Hm... not just 100%, 200%, but also when you freely stretch the window. That menu would be helpful though =]
|
|
|
Post by guest on Jan 30, 2006 1:50:41 GMT -5
If I may elaborate upon some ideas for you to consider.
1. the memory card thing. For the next release, you may simply want to consider prepackaging 2 blank, pre-formatted, pre-path-defined bin files with the emu in that folder. It doesn't hurt to do it. It just seems like kind of an unnecessary hassle to make them, mess with the savepath, format them, for us people who aren't planning on pointing to different ones. I like these names for them, for organization:
psxmemcard1 psxmemcard2
That way, I can archive them without renaming them to identify what they are. Because, if you ever have ps2 emulation in the future, you can say
ps2memcard1 ps2memcard2
2. Leave the "sleep when idle in window mode" disabled by default. I have a p4 2.4c with xp sp2. I don't know what the deal was, but it was cutting me off from obtaining a steady 60fps in games. Sound would stutter and the fps would get choppy and go down to 50. I didn't know what was going on and was futzing with the sound options for an hour before figuring out it was this. If you fix this, obviously you don't need to disable it, but I thought I'd let you know.
3. Is there a way to disable the cd/xa/mr popups in the bottom left corner. I'd like to see an option to do this. And if it's easy enough, just eliminate the command line extension stuff and makes switches for everything in the gui. Much easier.
4. clonecd support (already mentioned).
5. Am I doing something wrong, or does "disabled" for sound not actually disable sound emulation. Bug?
Thanks author.
|
|
|
Post by guest on Jan 30, 2006 2:15:08 GMT -5
I want to change what I said in my previous post. I thought it was the "sleep idle" that was doing it. Apparently not, because it has reappeared. All I know now, is that windowed mode does this, but when I alt-enter to go fullscreen, all dropped frames cease and I get no stutter. Alt-enter again back to windowed, and it stutters again. So I really don't know what the problem is, but it's there in windowed mode and not full screen. Fullscreen was running 60hz, and desktop is at 85hz. Hope this helps...
|
|
|
Post by whitetigerx7 on Jan 30, 2006 16:59:14 GMT -5
I think you mean VSync to the NTSC-U/C/J 60fps specification and 50fps to PAL in fullscreen. Refresh rates are different and you can run at 85hz on your monitor and still get 60fps from the application.
I agree with you IOCTL RAW sucks. Even Pete recommends using the scsi mode of it if at all possible. Most drives actually don't do RAW anymore except with CD iso recording where RAW writing writes the iso image as-is and that's where the limit comes into play. I think all bootable IDE CDROM drives anymore only support the SCSI specification.
I'm not sure exactly how the IOCTL coding works. Really don't use it, but what about using IOCTL_CDROM_SCSI_READ (if this is what is used) instead of RAW.
Just out of curiosity but what type of system (system hardware specs) are you using to code under and what compiler and language (C, C++, etc.) are you using?
I'm currently using this as my system:
Alienware m5500 Mobile 15in TFT 1280x800 Widescreen Pentium M 740 1.73 GHz Nvidia GeForce GO 6600 PCX Realtek ALC880-D 7.1 8 Channel HD-Audio Slimtype Combo 16x DVD / 24x16x24 CD-R/W IDE
As for my compiler:
MinGW 5.0.0 w/ Snapshot GCC 3.4.5 Compiler Allegro's DirectX 8.0 SDK (non-included files only) GNUWin32's LibPNG 1.2.8 w/ ZLib 1.2.3 GNUWin32's UPX 1.24 w/ UCL 1.02 NASM 0.98.39 Win32 SDL 1.2.9 Dev Kit for MinGW
I stick with GNU stuff a lot mostly because it's all freeware.
|
|
|
Post by DownloadMan on Jan 30, 2006 18:36:25 GMT -5
@psx Author Hi, I was just wondering would it be possible to port pSX emulator to XBOX using OpenXDK? www.openxdk.org/
|
|