Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Hades

Pages: [1] 2
1
Q-Gears / Re: PS1ISO Utility <-- find those pesky files!
« on: 2009-12-13 20:04:40 »
Hi David,

PM me your email address and I will send you over the code I was working on way back when :)

2
Q-Gears / Re: Anyone want to write a PSX file extractor?
« on: 2009-10-06 17:04:59 »
Hey guys (and Cyb!), been a while I know. Sorry I dropped off the face of the earth.

Has anyone finished this or found an alternative route? I could dig out the code and have another crack at it if not/

3
Q-Gears / Re: Halkun can't be "The Leader Guy" anymore....
« on: 2007-09-05 12:53:22 »
I vote G.

4
Scripting and Reverse Engineering / Re: FF8 Field Models
« on: 2007-08-23 15:42:17 »
Post some screens up for us?

5
Completely Unrelated / Re: Anime is like watching an RPG
« on: 2007-08-23 15:40:33 »
I really enjoyed another Ghibli film "My Neighbour Totoro".

6
Completely Unrelated / Re: Something for Jari
« on: 2007-08-20 08:22:54 »
Ah in that case then we are in agreement on those two points then my friend.  :-D

I think I must have nodded off temporarily at the point that that claim was made.

7
Completely Unrelated / Re: Something for Jari
« on: 2007-08-19 15:55:31 »
hi Kashmir,

Thanks for the link I read it through.   :-D

I must apologise in advance, I was'nt quite with you in your previous post. In some areas it did'nt seem clear which part of the movie you were reffering to.
None the less I think the conclustion I have come to, after seeing the movie and talking through it with some people at work (also now reading this blog entry) is that the movie isn't to be taken as gospel. I hadn't taken it as the absolute truth and I don't think anyone truly can do. If you take any story there will always be someone arguing that something happened differently because thats the nature of the myth. Its all chinese whispers. Its just nice to have an insight into where the myth may have evolved in a certain way. For someone who has blatenty ignored all religion as bulls**t for most of their life its a valuable piece of film, I expected there to be a handful of inconsistencies in the movie and a whole bunch of contested points.

Also I'm not sure what you meant in regards to buddism, and taoism. Would you care to elaborate? I am familiar with both religions after studying Tai Chi for a while and spending time with a number of Japanese friends.

I am aware that conversations regarding issues such as this can quickly esculate into flame wars, please note that it is not my intention to provoke you in any way.

8
Completely Unrelated / Re: Something for Jari
« on: 2007-08-19 10:23:26 »
I've had few days to think about this now..

I've been an atheist for as long as I can remember now and I found part one almost liberating. I knew there had to be a rational explanation for the umpteen different religions sharing so many characteristics. Its not only that, but I feel better in myself for watching it. After all everyone has a reason to worship the sun, I can definitely get into that. Not sure about praying to it mind.. :P

I felt as though parts two and three presented slightly more than a conspiracy theory though. I couldn't find any major holes in their case, a great deal of the evidence was solid.

What worries the most is the big brother world we are drawing closer and closer to, and knowing that the little people like us have no option but to conform.

Another thing I find amazing, the North American Union? How the hell could they sneak something like that in without letting America know? That seems absurd to me.

9
Completely Unrelated / Re: Something for Jari
« on: 2007-08-15 21:12:46 »
thanks for this, I enjoyed it.

10
Q-Gears / Re: Anyone want to write a PSX file extractor?
« on: 2007-08-15 12:30:17 »
Hey Cyb,

Hope you are well.

Actually I got the ECMA-130 document from somewhere. I haven't had the chance to look at it properly yet due to doing a paid job for someone. Thanks for the link to the dissertation though I have a feeling I'm going to need it.

11
Completely Unrelated / Re: Pineapple?
« on: 2007-08-12 22:32:13 »
I read every day without fail dude.

12
Microsoft software will never be free my friend... Free as in beer - perhaps.. Free as in Willy - nope, never, nada, nup.

13
Q-Gears / Re: Anyone want to write a PSX file extractor?
« on: 2007-08-08 08:35:01 »
I have these moments a lot, I had one at work the other day where I accidentally pressed the middle mouse button (paste) and then committed my changes to the svn. I wasn't very popular that day haha.

I spent a couple of hours last night looking at the code you sent me. I also found the spec for ISO 9660 and had a read of the first few pages. I figured I should probably understand the file system before I start trying to make your classes work for me. :P

14
Q-Gears / Re: Anyone want to write a PSX file extractor?
« on: 2007-08-07 08:37:14 »
Uh.. guys..

Could my script not be printing any data because I'm not using ios::binary?

==============EDIT================

I did it!!!! I DID IT!!!  :lol:

Hades Magical FF7 Linux dumper is coming soon!!'

15
Q-Gears / Re: Anyone want to write a PSX file extractor?
« on: 2007-08-05 09:27:03 »
Hiya Cyb,

I trust you are well mate :)

I amended the sector size, but I'm still not getting any data into my buffer. At the moment i'm only concerned with getting the IOCTL call to work as expected, I'll move onto detecting the mode of the sector and running it through your classes when I achieve this.

I found the following resource which is the most descriptive I have found:
http://www.gelato.unsw.edu.au/lxr/source/Documentation/ioctl/cdrom.txt#L347

I only wrote to the author of cdrom.h and recieved the following example code:

Quote
Yes, that is correct. I have no examples, but it should not be that
hard. You do need to just read it one frame at the time. so fill in
ala:

Code: [Select]
struct cdrom_msf msf;

       msf.cdmsf_min0 = minute;
       msf.cdmsf_sec0 = second;
       msf.cdmsf_frame0 = frame;

Quote
as input and call the ioctl, increment m/s/f appropriately. Internally
the cdrom driver will convert that to MSF, maybe the msf_to_lba()
conversion will help you:

Code: [Select]
int msf_to_lba(char m, char s, char f)
{
       return (((m * CD_SECS) + s) * CD_FRAMES + f) - CD_MSF_OFFSET;
}

Quote
where CD_SECS is 60, CD_FRAMES is 75, and CD_MSF_OFFSET is 150.

So something like this (untested) would read one frame at the time:

Code: [Select]
char *buf;
       struct cdrom_msf *msf;
       char m, s, f;

       buf = malloc(2352); /* raw framesize */
       msf = (struct cdrom_msf *) buf;
       m = 0;
       s = 2; /* lead-in */
       f = 0;
       do {
               memset(msf, 0, sizeof(*msf));
               msf->cdmsf_min0 = m;
               msf->cdmsf_sec0 = s;
               msf->cdmsf_frame0 = f;

               if (ioctl(fd, CDROMREADRAW, buf) < 0) {
                       perror("ioctl failed\n");
                       break;
               }

               /* buf now holds the frame */

               /* increment msf to next frame */
               if (f == CD_FRAMES) {
                       f = 0;
                       s++;
               }
               if (s == CD_SECS) {
                       s = 0;
                       m++;
               }
               f++;
       } while (1);


Here is what my code currently looks like:

Code: [Select]
#include <iostream>
#include <stdlib.h>
#include <linux/cdrom.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <fcntl.h>
#include <fstream>

int main() {

std::string device = "/dev/cdrw";
std::cout << "Opening Device:" << device << ".." << std::endl;

int drive;

drive = open(device.c_str(), O_RDONLY | O_NONBLOCK);

if (drive == -1) {
std::cout << "Couldnt open the bloody device!!" << std::endl;
}
else {
std::cout << "Device Open." << std::endl << std::endl;
}

         union {
             struct cdrom_msf msf;
             char buffer[2352];
         } arg;

unsigned int lba = 0;

std::ofstream output;
output.open("/home/karl/log.txt");

char minute = 0, second = 2, frame = 0;

for ( lba = 0; lba < 403964; lba++ ) {


//set msf
arg.msf.cdmsf_min0 = minute;
arg.msf.cdmsf_sec0 = second;
arg.msf.cdmsf_frame0 = frame;

//make ioctl call
int result = ioctl(drive, CDROMREADRAW, &arg);
std::cout << "ioctl reported " << result << std::endl;

output << "buffer  = " << arg.buffer << std::endl;
std::cout << "buffer in lba " << lba << " contains " << arg.buffer << std::endl;


/* increment msf to next frame */
               if (frame == 75) {
                       frame = 0;
                       second++;
               }
               if (second == 60) {
                       second = 0;
                       minute++;
               }
               frame++;

}

output.close();

return 0;
}

Thanks for reading  :wink:

16
As Cyb said, you need a timer. A crude example in pseudo code:

Code: [Select]
character1_speed = 25;
character2_speed = 50;

lamest_wait_time = 30;

For sake of ease I would use the speed points as a percentage of the wait time they DONT have to wait.
so in this example character 1 has to wait 22.5 seconds (75% of the wait time), and character 2 has
to wait 15 seconds (50%)

Code: [Select]
loop {
   
    if(time_has_passed(100 - character1_speed as % of lamest_wait_time)) {
        ShowCharacter1Menu();
    }

    if(time_has_passed(100 - character2_speed as % of lamest_wait_time)) {
        ShowCharacter2Menu();
    }

}

Sorry for leaving a lot to the imagination but I'm not much of a game programmer and a lot of this code would normally be wrapped up in all kinds of timer objects and your game loop etc etc.



17
This is great news Akari. I often wonder what you are up to.. (sad I know).  :roll:

18
FF8 Tools / Re: FF8 PSX File Extractor
« on: 2007-07-25 14:25:57 »
If you are using windows, IOCTL calls isn't supported for RAW data mode
Thats a useful bit of information actually G, thanks. I'm working on a file dumper for Linux at the moment though.

The format of a IOCTL is up to the kernel developer and the device driver programmer on whatever whim they need.
I have a feeling that contacting them directly on such an issue would result in me getting severely pwnz0rd  :-D

I made a dump of FF7 using both CDRDAO and psxdump.c and attempted to run them through Cyb's ISO tool. The CDRDAO binary just crashed the program and the psxdump image only displayed some of the volume information.. Baffling  :?

19
FF8 Tools / Re: FF8 PSX File Extractor
« on: 2007-07-25 09:02:05 »
I spent five hours pissing about with IOCTL last night, it must be one of the most severely under-documented system calls on the planet..

I can't figure out how to use CDROMREADRAW properly. I assumed that you give a cdrom_msf struct the starting values, and set the buffer (char array) size to the raw sector size and the ioctl fills the buffer with 2352kb of data. So I set up a working msf struct (as cdromreadraw uses a union) and a loop to increment through it.. but thats where I hit a hurdle. The cdrom_msf struct uses type __u8 (char) so I cant increment it!

Has anybody here had any success with cdromreadraw?

20
I'll read every day!  :-)

21
Q-Gears / Re: Anyone want to write a PSX file extractor?
« on: 2007-07-19 21:16:00 »
Sorry for the double post, its been quite some time..

I found this little C program called PSXDump:

http://www.koders.com/c/fid5A766079DE4FA99E89613A02AE286559CB49A13E.aspx

I'm having some trouble getting it to compile so far but I thought it may be useful. Let me know if I am barking up the wrong tree.

========================HUGE EDIT=================================================

Hi guys, I've been working on this for a week now (more like going around in circles). I have the disk spinning but no data is coming through to the buffer.
Can anyone see anything that I might be doing wrong with this bit of code?

Code: [Select]
#include <iostream>
#include <linux/cdrom.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <fcntl.h>
#include <fstream>

int main() {

std::string device = "/dev/cdrw";
std::cout << "Opening Device:" << device << ".." << std::endl;

int drive;

drive = open(device.c_str(), O_RDONLY | O_NONBLOCK);

if (drive == -1) {
std::cout << "Couldnt open the bloody device!!" << std::endl;
}
else {
std::cout << "Device Open." << std::endl << std::endl;
}

union {
        struct cdrom_msf mymsf;
        char buff[2536];
    } data;

unsigned int lba = 0;

std::ofstream output;
output.open("/home/karl/log.txt");

int minute;
int second;
int frame;

for ( lba = 0; lba < 403964; lba++ ) {

output << std::endl << "lba: " << lba << " in msf = ";
minute = int((lba + 150) / (60 * 75));
second = int((lba + 150 - minute * 60 * 75) / 75);
frame = lba + 150 - minute * 60 * 75 - second * 75;
output << minute << ":" << second << ":" << frame << std::endl;

//set msf
data.mymsf.cdmsf_min0 = minute;
data.mymsf.cdmsf_sec0 = second;
data.mymsf.cdmsf_frame0 = frame;

//make ioctl call
int result = ioctl(drive, CDROMREADRAW, &data);
std::cout << "ioctl reported " << result << std::endl;

output << "buffer  = " << data.buff << std::endl;
std::cout << "buffer in lba " << lba << " contains " << data.buff << std::endl;

}

output.close();

return 0;
}


The MSF addresses are incrementing correctly, and the disk has activity. I'm just not getting any data.
Thanks everyone.  :wink:

22
Q-Gears / Re: PS1ISO Utility <-- find those pesky files!
« on: 2007-07-19 19:04:35 »
Is there nothing available for us Linux folks?

Edit: I'm currently working with Cyb to get something together for Linux users.

23
Scripting and Reverse Engineering / Re: Sound / AKAO
« on: 2007-07-19 15:06:44 »
Has this been added to the wiki yet? I cant seem to find it there.

24
Q-Gears / Re: Advetising?
« on: 2007-07-09 07:06:36 »
I think GameDev and such sites would be a good place to look aswell.

25
There are probably hundreds of people that observe this forum experiencing similar feelings..
The Idea of playing Final Fantasy 7 on Linux (or indeed any other platform) is a dream of mine.

I would love to help with q-gears but I don't feel my skills would benefit the team at this point. I know C++ but have no OpenGL or reverse engineering experience.
Still there must be something I (or indeed anyone here) can do to help.

What are the options?
Would donations help?
Or would some of the senior programmers (with no free time) here consider holding the hands of less experienced devs in order to keep things moving (all be it slowly).
On this note would you encourage more people to download the source code and play around with it?
Halkun, as our fearless leader can you give us any words of encouragement?

Enough with the questions..

What ever it is that can be done, I'm sure I speak for most observers of this project when I say you have our full support.

Pages: [1] 2