release 1.6

BASK IN THE GLORY THAT IS MY SOURCE CODE!!!  i fixed up lots of dialog box stuff, the file open stuff, and more... and i really hope the subchannel stuff works ;)

I hope I included all the readme and license stuff i was supposed to...  if not, i'm sorry and i didn't mean it ;)

release 1.5

sweet - save states... took a while.  anyway, the only thing i'm not supporting now is subchannel stuff.  i have an idea how to do it, and i'm probably only going to support the subchannel files generated by pete's plugin.  on the other hand, i don't have any games that have subcode problems so i cant really test it... oh well...

release 1.4

with most of the emu related problems nailed down, it was time to work on better things...  RAR support seemed like a good choice - no other emu or plugin offered compressed image support, and URARFileLib makes it trivial to add so =)
I'm not sure if the CD-DA looping thing is really in the playstation hardware.  quite frankly, i've never owned a psx console but i've bought plenty of games for it.  anyone who can enlighten me as to whether or not the track looping is accurate to the console, let me know
i didn't add volume changing.  maybe in the next release...

some code reoraginization:  cue parsing is its own function now to support RAR files.  I'm not too happy about having the entire uncompressed cd image in memory after opening it from a RAR file, but using the RAR dll support sucked ass so I'm not gonna complain about that any more.



release 1.3

with some fancy hacks, i made the FPSE->PSEmu calls happy so that works =)  the variable bcdFix keeps track of that.  Sometimes it works, sometimes it doesnt.  I guess it's ok because the plugin works fine in FPSE native mode.

the CDDA stuff is pretty cool when playing but very sloppy in implementation.  I don't like the mess, but I'm leaving it so =P  here's the short list of stuff for the next version:

1) get rid of iso-9660 support.  If they're using an iso, too bad.  it messes up the games and audio and it's severly messing up my code.  they should be using binary images anyway =D
2) change the track info stuff to only have the start time.  No more tl[track].end and tl[track].start  just tl[track].time
3) loop on a track.  this involves deciding what track is being played by comparing the play(m,s,f) time to what's in the track list.  then when it hits the end of the track (or of the cd), loop back to the start of the track.
4) volume changing.  i'll hijack the < and > keys to do that so people can do it in game.

there's a small reorganization of the code.  cdreader.c is toast.  it's replaced by llinfo.c (for read and track stuff) and llopen.c (for opening files).  yea organization!


release 1.2

FPSE is messed up.  They make calls in PSEmu mode in BCD when they shouldn't.  They call CD_Play over and over and over and over for no apparent reason.  There's no documents for their SDK.  It's painful.  Very painful...  I'm gonna try to get in touch with them for some help working out my issues with it.

What I said about calculating lengths is mostly correct.  It now correctly calculates CD track start times correctly, but end times aren't quite the end times.  The first track's end (when you have a .CUE) is off 4 seconds and the subsequent tracks are all off 1 frame.  Thankfully this isn't important *YET* but it will be soon...

Calb told me there will be CD-DA cd plugin support in the next ePSXe which makes me very happy.  Now it'll be worthwhile to implement the CD-DA streaming =)  

k, later.



release 1.1

So i fixed some bugs and made some other changes.   The #define for debug info is now MOOBY_DEBUG and not _DEBUG.  I also fixed up the cue sheet track reading a bit so it should be more accurate now.  Neither of these things affect the release so I'm not including them in those notes...

The big question for me right now is why Wipeout won't work with the plugin but it does with EPSXE's native bin reader.  Once I fix that up, then I'll work on some of the other big features that I have set for the project.

I also think there's a problem with FPSE caching the plugin dlls when you change them.  If I run FPSE, change my plugin dll in the /plugin folder, then run FPSE again, it uses the old dll despite the fact that I wrote over it.  I wonder if this is just a Win2k issue...  More of a hassle than a real bug, but whatever.. I'll deal with it later.

I had to change some of the projet release optimizer settings.  Generate Intrinsic Functions and Full Optimization borks the dll so stay away from those.  Maybe later they'll work right...

moo.




release 1.0

here are my notes about the internals of the plugin...

first, A HUGE THANK YOU to pete bernet and the PEOPS team because I couldn't have done it without them or their project or pete's header files.  THANK YOU THANK YOU THANK YOU THANK YOU.  yes, i swiped snippets of code here and there and i marked all of them (i think).  plz dont get pissed at me - i'm doing this for the first time and was really clueless until i got the info from PEOPS and pete's site.

THANK YOU!!!!

k, enough groveling.  

*LEGAL SHIT*

all this code (cept for code i marked as swiped from elsewhere) is copyright mooby 2002 and is licenced under the GPL included with this zip file.  If there is no licence in here, then you got screwed by someone and it's still protected by the gpl.

I also ask if you use it, let me know of any improvements u make so i can incorporate it into my plugin.  n fact, let me know anyway if you're gonna use my code in something just so i can see who's actually doing something with it.  contact info is at the end... 

*ONWARD*

I first did this in C++ (before releasing it). Then i said, "wtf am i doing this in c++ for? i'm not gonna use anything c++ that i can't do just as easily in c?" so i converted everything to c and shrank the dll to 1/4 the size, so c it is.

there are 2 levels of debug... _DEBUG records every func call except reads and seeks.  SUPER_DEBUG records everything and i mean everything.  Dont do that unless you really mean it.  Seriously.  If you do want debug info, change the LOGFILE in cdreader.h #define to whatever file you want it to go to.

the big list of things to be done...

*NOTE* all you news posters n such, don't go runnin to the news submit page yet.  none of this is done yet so don't jump the gun.  when things are finished, i'll let you know...

1) a linux port. I don't use psx emus in linux so i hope someone will take some initative and make a makefile for it as well as the appropriate dialog boxes *hint*  all the windows specific code should have a #ifdef _WINDOWS in it to ease the pain...

2) cdda support with cue sheets.  Yeah, Daemon tools does it but i really don't want to have to run it if i dont have to.  This involves:
	- having a working cue sheet parser _that's correct_
	- adding directsound(windows) or sdl(linux - it is sdl, right?) support to do the sound playing
	- doing all the threading and control stuffz to make it work right.
	- figuring out how cd playing works with these emus. check my comments in cdda.c
	so i've got alot of homework to do. anyone out there who has info to speed up development, lemme know.  

3) set up sourceforge or some other shared repository for this code

4) add support for more cd formats
	- iso for certain
	- clone cd?
	- discjuggler?

5) do something more interesting with cdreader.c.  that file annoys me...

6) clean up cdreader.h.  for one thing, change all the inline stuffz to #defines.  also change all the bcd<->int stuff and time arithmetic stuff to its own .c file

7) fix up the return codes to FPSE_ and PSEMU_ rather than hard coded 0 and 1

8) fix up the pregap stuff
	- change how pregap is handled in cue sheet parsing and binfile opening
	- change how it's handled in sector read (the 2 sec. offset is hard coded for now)

9) clean up CALLBACKs and stuff... i had problems anytime I declared the FPSE funcs as CALLBACKs - the dll wouldn't work =/ not at all consistant with the psemu calls.  i donno if anything can be done about that or not...

on the other hand, it works rather well so i'm happy with it.  you can reach me at mooby@themeat.org if you need to get in touch with me, but plz do that only if you have a legitimate issue.  for nuance plugin problems, use the normal route of ngemu forums.  aside from any immediate errors or problems, i'm gonna put this aside for a bit.  once enough new additions that warrant a release are finished, then a new version will be put out...

AND DON'T FUCKIN BOTHER ME WHEN THE NEXT RELEASE WILL BE.  I HATE FUCKIN LAMERS AND I WILL DEAL WITH YOU IN THE WAY LAMERS SHOULD BE DEALT WITH >=)

later
mooby