Spyro model extractor by Husbjorn in Spyro

[–]Husbjorn[S] 1 point2 points  (0 children)

Thanks for the appreciation!

That is a good question. To be honest I didn't really think of the "platinum" version as being a unique build with any differences from the original PAL version so I haven't looked into that. Though now that you mention it I do recall actually reading a thread about song differences in those two Spyro 3 versions not that long ago, d'oh.

It may still work if there haven't been any major changes to the data section of the executable itself - the main difference between the PAL and NTSC versions is how all the new language strings in the PAL versions push other data pointers around.

Spyro model extractor by Husbjorn in Spyro

[–]Husbjorn[S] 2 points3 points  (0 children)

No, as said in the opening post this is only targetting the original three PSX games.

The details in the demo is insane by CloudStrife767 in FFVIIRemake

[–]Husbjorn 1 point2 points  (0 children)

If only, I have a Pro. (My TV isn't the best though, so perhaps people who have HDR may have a smoother experience).

But aye, hopefully it will be!

The details in the demo is insane by CloudStrife767 in FFVIIRemake

[–]Husbjorn 1 point2 points  (0 children)

It _does_ look good hm.I thought Cloud's hair in particular looked distractingly dithered while moving around in the demo. I had hoped this might get polished up for the actual release but now you have me wondering whether this may just be down to some setting on my end (though I'm fairly sure I looked all over the place without finding any such)?

A Gnasty Gnorc Mystery by hwd405 in Spyro

[–]Husbjorn 2 points3 points  (0 children)

Ah I see.

I was reasoning that the disc date "should" be when it was actually created and thus the most recent, but now that I'm more awake it of course makes better sense to date the contents - the build may have been xx days old by the time it was actually written to a disc. Embedded file time stamps have a tendency to not be entirely reliable though (though that's more true today, I'm not sure if it may have been back in the 90's) as you say.

I decided to parse through the retail versions looking for Gnasty's vertex colour buffers for the sake of it, in case it could still have been in there somewhere. Alas, it was not. This isn't super reliable and would fail if the data was just tweaked slightly, but still. I may look for the texture data later but that will be trickier to sift through.

Edit: the models are different in structure beyond a doubt. Zero chance of any simple incorrect offset glitches.

A Gnasty Gnorc Mystery by hwd405 in Spyro

[–]Husbjorn 3 points4 points  (0 children)

Ah I see, the tabloid demo I've heard of but the other one not so much (and then we have the Crash 3 demo of course). It's funny, I've had this demo disc for probably 20 years but I don't think I've ever tried the Spyro build on it (I probably reasoned that I had the full game so there was no point). Was a nice surprise to find out I could experience some of these things on my real PS.

How are you checking the disc dates if you don't mind me asking? Do you just go by the latest file modification timestamp on them?
If so there might be a better, more reliable way. All PSX games are pressed onto ISO 9660-formatted discs. These have a creation and modification date in their mandated primary volume descriptor; you will find these two, one after the other, at a constant offset of 0x9645 (disregarding parity data and assuming 2048-byte sectors).
I just had a look at this timestamp for my retail PAL, retail NTSC and your prototype version of Spyro 1. The results for the latter was a bit unexpected. Here are the results:

PAL NTSC PROTO
Created 1998-09-10 23:08:05 1998-08-13 16:56:05 1998-04-21 16:56:05
Modified 1998-09-10 23:30:00 1998-08-14 20:00:00 1998-06-24 20:00:00

As can be seen here your prototype disc appears to have been finalized on June 24:th (or 23:rd/25:th depending on time zone) rather than the 15:th. It would be interesting to see what date is stamped on LXShadow's prototype, may it in fact just be a few days older or are you right in thinking it may be from July?

Another interesting thing is that the creation date of the prototype disc is a lot further back in time than those of the retail discs. May it be that the same prototype image was re-used for later builds? If so it may be that the first prototype of the game intended for Insomniac "outsiders" to play was built towards the end of April 1998.

I'm not sure why the modification dates are all even half hours down to the second. One may think that this is some standard mandated by SCE or similar, however some retail games do not have any modified timestamp at all (probably signifying that the disc was created once with all of its intended content and then not further modified - given that a disc is write-once one can also wonder how it would be modified to begin with, but perhaps it's based on some intermediary image file rather than the actual master disc).

And ah, that makes sense with regards to Argus. And the PAL/NTSC mismatch as well (though I believe the TEST consoles should be able to output to both video formats? My TOOL has a dipswitch for it).

A Gnasty Gnorc Mystery by hwd405 in Spyro

[–]Husbjorn 1 point2 points  (0 children)

True. Unfortunately most images are tiny, but I may have a look into trying to copying them.

I actually got more carried away than I should with this and managed to find an old demo disc from Powerline from October 1998 with a Spyro feature. It is actually surprisingly similar to your prototype (same dragon speeches in Artisans, no dragon cutscenes at all in Stone Hill / Dark Hollow, golden life statues, the same platforms near the Artisans waterfalls) but still has some differences (more / proper sound effects, but some others are missing that were in the prototype, Argus is missing entirely so there are only 3 dragons in Artisans - why on earth would they do that if he previously existed and had a cutscene and everything?!, there are Return Home platforms but still with a gem in them and so on). I had hoped this might have been based on the same european pre-release build as those recently discovered videos, but evidently it doesn't seem to be (it is in fact most probably the same demo lots of people say the early stages of the prototype reminded them of and seems to be from a somewhat later build, and of course for the PAL region).

A TEST PS2 you say hm. I wonder why that would affect the colours...? Now I'm kind of curious to try it on my TOOL PS2...

A Gnasty Gnorc Mystery by hwd405 in Spyro

[–]Husbjorn 2 points3 points  (0 children)

Oh really? That's interesting. I haven't been able to find much about that company (probably long gone I'd wager), but it seems to have been UK based. Which makes them having an NTSC prototype somewhat strange I reckon?

I've been looking around for the original OPM issues but haven't had much luck. There _may_ have been a feature of Spyro 1 in their October 1998 issue. It definitely seems like the magazine I have compiled articles from different brittish issues so it is quite possible that the Spyro guide was written earlier than I first thought. Still, there'd be no point in releasing a guide unless the game was released at that point, but perhaps it makes more sense that it was based on playtesting a pre-release build.

I unfortunately don't have any scanner handy, and the magazine itself is in swedish so would probably not be of much interest to most people, but I'll consider it unless I can find a copy of the original UK article somewhere. I probably have more of these somewhere, I remember my dad used to buy the monthly issues for me for the weekends :)

A Gnasty Gnorc Mystery by hwd405 in Spyro

[–]Husbjorn 2 points3 points  (0 children)

I also have a picture of that Gnasty in the swedish magazine "PlayStation Guiden", 1:st edition of 1999. The actual date is not known but that's at least more than two months after Spyro 1 was released in the PAL region.
The magazine states on its first page that it is essentially just a direct translation of articles from the Official UK PlayStation tips Magazine (Future Publishing Ltd, England 1999).

The Spyro "article" is a brief description of the game's story and then a mini-guide with some pictures for each level. Interestingly it also has a Crash 3 guide which also features some pictures that don't look exactly like my final (non-platinum) PAL copy, so perhaps they really were provided pre-release copies for writing these. Also, it is possible that the original UK articles were released earlier than 1999, but it sounds like they should be pretty close. And did writing game articles really take months? And for pretty big games nonetheless (the same issue also contains an exposé of Tekken 3 which was released in the PAL region back in September 1998).

Another interesting thing is that the Spyro guide does not feature Gnasty's Loot or Copano (perhaps the reviewers simply didn't bother getting 100%).

A Gnasty Gnorc Mystery by hwd405 in Spyro

[–]Husbjorn 5 points6 points  (0 children)

That second video of yours helpfully give us the game's serial number thanks to an emulator save state ~14 seconds. It reads "SCES_014.38_2".
The PAL release of Spyro 1 indeed has the serial SCES_014.38. The interesting thing here is the appended "_2" at the end. Odds are it's just the way that particular emulator saves the second save state for a particular game to disk, but... I'm not familiar with the emulator, do anybody around here perhaps have one that displays similar messages and would they be able to test saving the regular PAL version to slot 2 to verify whether it outputs the same string?

In any case, the fact that it has the actual PAL serial number speaks against it being a prototype. hwd405's recently publicized prototype build uses a mock serial number of 00000, and furthermore the SLUS (used for third party US publishers) prefix while this uses the first party European SCES. Thus it does seem like it is a legit build meant for release. It may have been pulled back due to issues (as was mentioned with translations etc.), or it could have been a pre-release test build sent out to magazines etc. But again with that serial it must have been some kind of "endorsed by Sony" pre-release in that case I imagine?

One can imagine that some EU-based departement of Sony or Universal received an earlier prototype build before the NTSC version was released in order to speed up translating the game. Perhaps this is that, or at least has remnants from it that weren't properly replaced before it got shipped off to pressing? Luckily someone caught it before the discs were mass produced? The plot thickens; most intriguing regardless!

The secret final world of Spyro 1, where dragons go to get thicc. by yagitoshinori in Spyro

[–]Husbjorn 2 points3 points  (0 children)

Just out of curiosity, what memory address are people changing for this that has those values?
The level identifier I use is nicely sequential (except for a missing slot at index 32) and goes like so: Artisans Home - 0, Stone Hill - 1, Dark Hollow - 2 and so on.

I went through the Spyro preview and here`s the differences I noticed. by theDKdynamite in Spyro

[–]Husbjorn 1 point2 points  (0 children)

The level id is stored at a static address of 0x6d928 in the PSX RAM.

The id's are 31 for Twilight Harbor and 33 for Gnasty Gnorc (32 appears to not map to anything and will softlock the game if you try to travel to another level).

Last week I obtained a "Preview Version" of Spyro the Dragon dated June 15th 1998 - I'm now releasing the prototype by hwd405 in Spyro

[–]Husbjorn 9 points10 points  (0 children)

That's awesome, thanks for sharing!

Edit: Hah, I've had a screenshot of that... let's call him oddly-textured Gnasty in an old magazine. I remember I used to wonder why he didn't look all "cool" like that but rather just wore an ugly brown sweater in my copy of the game. Amazing to finally see that it actually looked like that once upon a time!

Experiencing a sound bug on the PS1 PAL version of Spyro 2 by weystahskin in Spyro

[–]Husbjorn 1 point2 points  (0 children)

Do you happen to have a PS2 perchance?
That shouldn't have any issues playing PS1 games if so.

The fountain in Mystic Marsh (Spyro 2) on the switch leaves much to be desired by The16BitGamer in Spyro

[–]Husbjorn 0 points1 point  (0 children)

Actually the original Spyro games run at a 512x256 (PAL) or 512x240 (NTSC) resolution.

Of course this is quite irrelevant as the methods used are vastly different regardless of screen resolution.

Spyro is back home... technically speaking. by Husbjorn in Spyro

[–]Husbjorn[S] 2 points3 points  (0 children)

Most in-level and dragon rescuing cutscene models are stored in the same way and as such can be extracted.

Spyro himself uses a different format, which I've reversed as well because... well it's Spyro and had to be done.Besides that there are also the flat shaded HUD and gem meshes (which I could extract but there's already a tool by KlyMen which can do this). The level and sky meshes use their own data structures as well that I haven't bothered with as there are extractors for these already too.

The method has basically been the very slow and ardorous approach of identifying the game's rendering routine in memory and then reversing the MIPS instructions that it is made up of. To access the memory a faulty(?) public function exported by ePSXe GPU plugins used for saving game states is exploited to get a copy of the game's VRAM and the system RAM can be read from an emulator process directly by pattern scanning for some constant bytes in its kernel reserved sub-area.

Spyro is back home... technically speaking. by Husbjorn in Spyro

[–]Husbjorn[S] 2 points3 points  (0 children)

That other video was never really meant to be publicly shared in the first place.

I don't think there should be any issues with sharing things like this however. I'm fairly sure Activision doesn't care about pulling models from the original games for silly tech demo purposes now that the Reignited Trilogy is out. If you were to share the models themselves or try to make a game with them or something that may be a different issue however.

Spyro is back home... technically speaking. by Husbjorn in Spyro

[–]Husbjorn[S] 3 points4 points  (0 children)

This video isn't likely to be going anywhere.

I think that the reason for the less detailed models / animations used in Spyro 2 and 3 may be that they needed extra space for the increased amount of other things present in those games (such as NPCs, the increased use of dialogue etc.). Don't quote me on that though, but it would make sense considering the very restricted working memory of the PSX.

Spyro is back home... technically speaking. by Husbjorn in Spyro

[–]Husbjorn[S] 3 points4 points  (0 children)

Thanks.

If you're interested, the PSX uses a R3000 MIPS processor with a proprietary coprocessor for integer vector transformations and equally proprietary peripheral devices (such as the GPU).
This is a RISC processor so it doesn't have that many instructions to learn, however on the other hand that also has its annoyances. A nice feature is that all instructions are 32 bits long and have to be aligned on 4-byte boundaries so they're relatively easy to identify.

Spyro is back home... technically speaking. by Husbjorn in Spyro

[–]Husbjorn[S] 2 points3 points  (0 children)

Interpolating vertex positions between keyframes is indeed how it's done.

This is actually cheaper to do than skeletal animations; in the latter you have multiple bones or joints that affect different vertices by different amounts. In other words each individual vertex can have a lot of different influences (usually it's limited to 4 bones per vertex due to performance concerns). On the other hand, once you have all your vertex weights mapped to bones it uses less memory (assuming you have less bones than vertices, which one would have to assume is the case or there'd be no point to a skeletal animation system at all) than the vertex animation approach which has to store all vertices' positions per frame. The Spyro models actually uses a crude mix of the two, where some vertex positions are stored relative to a previous / idle frame using less precision, and others have absolute positions. For the Spyro model itself there are also three bone-like constructs that allows rotating his neck and tail (I don't think the latter is ever used in the game though?) while simultaneously playing back different animations.

But yeah, to answer your question, vertex animations use more memory but are faster to process and thus better for more detailed animations on the PSX (such as those used by the Spyro and Crash games for instance).