Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Erick194

[GEC] Master Edition PSX Doom for the PlayStation. Beta 4 Released [11/16/2022]

Recommended Posts

3 minutes ago, Kroc said:

I can always distribute the tool to make a PSP release, and the user -- once they've patched their own ISO -- can generate the EBOOT for themselves :)

That's basically what I was figuring, yes.

 

Maybe should see if we can get it running on PS3s as well, someone was asking about that. I've got a jailbroken PS3 if testing is needed. 

Share this post


Link to post

A quick note to @Erick194 and/or @Gerardo194 - you might not get much more maps past my submissions and whatever you guys managed. Per their profile pages, @Dragonsbrethren hasn't been around in about two weeks, and @mr-around has been anything but, having not visited in over a month (which really sucks when most of the maps left are ones he chose to take).

 

@Đeⓧiaz is the only other one with maps left to do, but he's only responsible for one more map.

Share this post


Link to post

I know it is for at least my two remaining maps, I submitted those a day or two ago. But it's also somewhat unlikely that they're all done, too.

Share this post


Link to post

I have added the check to your two Darkpulse maps, there are really several maps to do a following beta, we are still working on our maps, I have also been working with the reverse engineering of psxdoom, the objective is to recreate the port, for future direct modifications , at least I already have the exact code of how the vram works and how the draw scene works, actually several functions I have already been able to reconstruct of psxdoom code and I have created psx programs using the same psxdoom system.

Share this post


Link to post
Just now, Erick194 said:

I have added the check to your two Darkpulse maps, there are really several maps to do a following beta, we are still working on our maps, I have also been working with the reverse engineering of psxdoom, the objective is to recreate the port, for future direct modifications , at least I already have the exact code of how the vram works and how the draw scene works, actually several functions I have already been able to reconstruct of psxdoom code and I have created psx programs using the same psxdoom system.

Sounds good, that will really help out in the future if you want an original episode or for future projects modding the game. :)

Share this post


Link to post

a bit of the vram_viewer function, it's a bit short but it's from the original code

void vram_viewer(void)
{
	unsigned long *vram;
	psxobj_t *psxobj;
	int i, page, xpos, ypos, w, y, h, obj;
	
	//page = 5;//test only
  
	setPolyFT4(dc_polyft4);
	setRGB0(dc_polyft4, 128, 128, 128);
	setXYWH(dc_polyft4, 0, 0, 256, 240);
	setUVWH(dc_polyft4, 0, 0, 255, 255);
	setTPage(dc_polyft4, 1, 0, PagesXY[page][0], PagesXY[page][1]);
	setClut(dc_polyft4, 0, 240);
	//SetSemiTrans(dc_polyft4,1); //test only
	W_AddPrim (dc_polyft4, polyft4addr0, polyft4addr1);

	vram = (unsigned long*)(vram_cache + (page << 10));

	for (obj = 0; obj < MAX_VRAMMEM; obj++)
	{
		psxobj = (psxobj_t *)*(unsigned long*)vram;
		
		if(psxobj) 
		{
			//printf("draw vram %p\n",*(unsigned long *)(void*)vram);
			
			y = psxobj->vramy;
			xpos = psxobj->vramx;
			
			y = (y << 4) - y << 4;
			if(y < 0) 
			{
				y += 255;
			}
			
			h = psxobj->h;
			w = psxobj->w;
			
			h = (h << 4) - h << 4;
			ypos = y >> 8;
			if(h < 0) 
			{
				h += 255;
			}
			h = (h >> 8);

			setLineF2(dc_line);
			setRGB0(dc_line, 255, 0, 0);
			
			//top line
			setXY2(dc_line, xpos, ypos, xpos + w, ypos);
			W_AddPrim (dc_line, lineaddr0, lineaddr1);
			
			//right line
			setXY2(dc_line, xpos + w, ypos, xpos + w, ypos + h);
			W_AddPrim (dc_line, lineaddr0, lineaddr1);
			
			//bottom line
			setXY2(dc_line, xpos + w, ypos + h, xpos, ypos + h);
			W_AddPrim (dc_line, lineaddr0, lineaddr1);
			
			//left line
			setXY2(dc_line, xpos, ypos + h, xpos, ypos);
			W_AddPrim (dc_line, lineaddr0, lineaddr1);
		}
		
		vram ++;
	}
}

Or the PSX_INIT

void PSX_INIT(void)
{
	ResetCallback();
	PadInit(0);
	ResetGraph(0);
	SetGraphDebug(0);

	InitGeom();
	SetGeomScreen(128);
	SetGeomOffset(128, 100);

	SetDefDrawEnv(&draw[0], 0, 0, 256, 240);
	draw[0].isbg = 1;
	draw[0].dtd = 0;
	SetDefDrawEnv(&draw[1], 256, 0, 256, 240);
	draw[1].isbg = 1;
	draw[1].dtd = 0;
	SetDefDispEnv(&disp[0], 256, 0, 256, 240);
	SetDefDispEnv(&disp[1], 0, 0, 256, 240);

	drawside = 0;

	EnterCriticalSection();
	ExitCriticalSection();

	AddCOMB(); // Initialize link cable communications

	ev_r = OpenEvent(HwSIO, EvSpIOER, EvMdNOINTR, 0);
	ev_w = OpenEvent(HwSIO, EvSpIOEW, EvMdNOINTR, 0);

	fw = open("sio:", O_WRONLY);			// Open stream for WRITING 
	fr = open("sio:", O_RDONLY | O_NOWAIT);	// Open stream for READING

	CombSetBPS(38400); // Set communication rate

	DrawRender();
	DrawRender();

	SetDispMask(1);
}

Here the original code of the fire sky sequence of psxdoom, really is very similar to that of doom 64 deciphered by Kaiser, but shorter and functional as well.

void P_FireSky(psxobj_t *psxobj)
{
	byte *src, *srcoffset;
	byte randIdx1, randIdx2;
	int width, height;
	int pixel, counter;

	src = lumpcache[psxobj->lump] + (FIRESKY_WIDTH + 8);//8 = skip header texture data

	width = 0;
	do // width
	{
		height = 1;
		counter = width + 1;

		srcoffset = src + width;
		do // height
		{
			pixel = *(byte*)srcoffset;
			if (pixel != 0)
			{
				randIdx1 = rndtable[(frndindex & 0xff)];
				randIdx2 = rndtable[(frndindex + 1) & 0xff];
				frndindex = ((frndindex + 2) & 0xff);

				*(byte*)((counter - (randIdx1 & 3) & (FIRESKY_WIDTH - 1)) + src - FIRESKY_WIDTH) = pixel - ((randIdx2 & 1));
			}
			else
			{
				*(byte*)(srcoffset - FIRESKY_WIDTH) = 0;
			}

			srcoffset += FIRESKY_WIDTH;
			src += FIRESKY_WIDTH;
			height++;
		} while (height < FIRESKY_HEIGHT);

		src -= ((FIRESKY_WIDTH*FIRESKY_HEIGHT) - FIRESKY_WIDTH);
		width++;
	} while (width < FIRESKY_WIDTH);

	psxobj->index = -1;
}

 

Edited by Erick194 : I add code

Share this post


Link to post

What about the music? Do you need any help with that or are you gonna re use the music from PSX?

Share this post


Link to post
1 hour ago, D88M said:

What about the music? Do you need any help with that or are you gonna re use the music from PSX?

This runs on PS1 hardware, so by definition we're reusing the PS1 soundtracks.

 

Though there is a possibility he may be able to insert a combined soundfont into the game and/or get us a way to create new tracks (albeit with reusing the existing music samples), but that's far future for now (especially as it's subject to RAM limits just like almost everything else with Playstation Doom).

 

Presumably a port would be a different story altogether, but that depends on how closely he wants to have the limitations be, and either way, a port is definitely far future at this point.

Share this post


Link to post

Well, if someone comes up with something creative using the samples already loaded in memory for that map, so for example, you replace MAP01 music using only the samples used for the original music for MAP01.

 

I was trying to make some music for Doom 64 and I came up with something quite cool, but Doom 64EX refused to play it correctly for some reason, anything else I tried to play it on worked perfectly. I could try experimenting trying to make tracks for PSX Doom. If I get something worthy of sharing, I'll post it here.

Share this post


Link to post
2 hours ago, CoTeCiO said:

Well, if someone comes up with something creative using the samples already loaded in memory for that map, so for example, you replace MAP01 music using only the samples used for the original music for MAP01.

 

I was trying to make some music for Doom 64 and I came up with something quite cool, but Doom 64EX refused to play it correctly for some reason, anything else I tried to play it on worked perfectly. I could try experimenting trying to make tracks for PSX Doom. If I get something worthy of sharing, I'll post it here.

From what I recall, Doom 64 EX doesn't quite read all the MIDI specifications properly and that's why it can't play the tracks. There was discussion about it on its Discord some time ago.

 

I too wouldn't mind having some new music, but I still feel like before that happens, Erick needs to see if it's technologically feasible, and even if it is, that we get Aubrey Hodges' okay since we are very literally reusing his samples. (I doubt he'd mind, especially as nobody's making any profit and Williams/Midway are long dust now, but it's the principle of it and all.)

 

It'd be a good question of whom we could pull from the Doom community to do those tracks though. I dabble in MIDI-based stuff (but not quite to the level of full compositions just yet), but this would be so simple enough that really almost anyone could do it - but making it sound appropriately spooky is another thing entirely.

 

If it's possible though, and Erick provides me the tools, I'd give it a try.

Edited by Dark Pulse

Share this post


Link to post
On 3/8/2019 at 7:17 PM, Dark Pulse said:

This runs on PS1 hardware, so by definition we're reusing the PS1 soundtracks.

 

Though there is a possibility he may be able to insert a combined soundfont into the game and/or get us a way to create new tracks (albeit with reusing the existing music samples), but that's far future for now (especially as it's subject to RAM limits just like almost everything else with Playstation Doom).

 

Presumably a port would be a different story altogether, but that depends on how closely he wants to have the limitations be, and either way, a port is definitely far future at this point.

Okay, let me know if you need anything music related.

 

What are you doing by the way, like the psx version but without missing levels? For pc? I always wanted to play the psx version on pc but i had a hard time finding it and making it work.

Share this post


Link to post
19 hours ago, Dark Pulse said:

It'd be a good question of whom we could pull from the Doom community to do those tracks though

 

I think I'm not so bad at this:

 

BTW, I have a strange question...but what's about the Sega Saturn Edition? I mean, it's just the PSX Doom with "rapidfire doomguy" feature...

Share this post


Link to post
3 hours ago, D88M said:

Okay, let me know if you need anything music related.

 

What are you doing by the way, like the psx version but without missing levels? For pc? I always wanted to play the psx version on pc but i had a hard time finding it and making it work.

We're reinserting all the missing and cut levels, and working to make them work under the PS1's pretty strict limitations. Apparently there will be at least two versions of the project - one that will just include the missing levels, and one that inserts them among their proper map slots (along with the original levels).

 

The mod is for the Playstation versions of Doom and Final Doom by modifying the map lists, so it runs on the actual Playstation hardware, and you'd need an actual Playstation (1/2/3), or a Playstation emulator (I'd recommend BeetlePSX's core in Retroarch or Xebra if you're using a standalone emulator), or a PSP/PS Vita/PSTV to run it properly. Seeing as GEC also has a sister project that back ports the PS1 version to PC though (while still maintaining PS1 accuracy) and are actively reverse-engineering it to try to produce a native PC port of the PS1 version (similar to Doom 64 EX or Calico), I wouldn't be surprised if eventually there's a "true" PC version as well.

10 minutes ago, Đeⓧiaz said:

 

I think I'm not so bad at this:

 

BTW, I have a strange question...but what's about the Sega Saturn Edition? I mean, it's just the PSX Doom with "rapidfire doomguy" feature...

Yeah, like I said, if he gave us tools to do our own music, I'd give it a whirl myself. I mean, we can make the MIDIs all we want right now since he supplied the combined PSDoom/N64Doom soundfont, but getting them reinserted back into the game is the challenge.

 

As for Saturn Doom... I guess it's possible and much of the WADs are nearly, if not exactly, identical. The main problem is a lot of the atmosphere would get zapped, and of course, the performance is terrible.

 

Fixing that would mean rewriting the renderer to be hardware accelerated again at the least, if not to reinsert the features not used (all the relevant lumps are also still there from what I know). If you're going to go that far, you might as well do it for the Playstation version first, since it's totally possible to minimize texture warping if you're careful (which is the main reason the PS1 renderer renders in strips - slow, but warping is virtually eliminated). After all, the PS1 had an excellent port of Quake II late in its life that kept that warping to a minimum.

Share this post


Link to post
11 hours ago, Dark Pulse said:

The main problem is a lot of the atmosphere would get zapped, and of course, the performance is terrible.

 

 

Well, I didn't meant to make Sega Saturn Edition is the "true copy" of PSX Doom Master Edition. I do know about bad performance (I suppose that's why all weapons are fast, just to prevent player's death due to random fps lags which also causes problems with firing), but when we get the finished PSX Master Edition, we can also "port" it.

 

I said about this idea for the Great Justice of making all "completed" Console Doom games.

Edited by Đeⓧiaz

Share this post


Link to post
41 minutes ago, Đeⓧiaz said:

 

Well, I didn't meant to make Sega Saturn Edition is the "true copy" of PSX Doom Master Edition. I do know about bad performance (I suppose that's why all weapons are fast, just to prevent player's death due to random fps lags which also causes problems with firing), but when we get the finished PSX Master Edition, we can also "port" it.

 

I said about this idea for the Great Justice of making all "completed" Console Doom games.

Personally, I'd rather port it to Doom 64 first. Can entirely redo the atmosphere due to the lighting, will have to change some monsters where there's some more cuts, but otherwise it's on a powerful platform and if anything we'd actually get to up the texture variety.

Share this post


Link to post

Not that most people will care but I am so excited about this project that I need to simultaneously poo, vomit and dance. This is Doom porn. My tremendous thanks and respect to everyone involved with the project. The Lost Levels was a milestone, this is the new milestone.

 

Damn, gonna have to figure all this shit out and learn how to make my own PSX Doom episode. And hopefully it won't suck as hard as my Panophobia stuff.

 

Omg - how to get Alien Vendetta maps converted so they'll run on a Playstation...

Share this post


Link to post
27 minutes ago, MajorRawne said:

Not that most people will care but I am so excited about this project that I need to simultaneously poo, vomit and dance. This is Doom porn. My tremendous thanks and respect to everyone involved with the project. The Lost Levels was a milestone, this is the new milestone.

 

Damn, gonna have to figure all this shit out and learn how to make my own PSX Doom episode. And hopefully it won't suck as hard as my Panophobia stuff.

 

Omg - how to get Alien Vendetta maps converted so they'll run on a Playstation...

Erick has said that once the project is complete, he will release tools so anyone can do pretty much any sort of level pack they'd like.

 

That said, there are DEFINITE limitations that will result in you cutting down some geometry, textures, height, monster variety, memory limits... so don't think they will get across unscathed.

 

And good, hopefully the maps I contributed kill you a couple of times. :) 

Share this post


Link to post
23 hours ago, Dark Pulse said:

Personally, I'd rather port it to Doom 64 first. Can entirely redo the atmosphere due to the lighting, will have to change some monsters where there's some more cuts, but otherwise it's on a powerful platform and if anything we'd actually get to up the texture variety.

 

I thought about "converting" those maps into D64, but I'm not sure that D64 Conversion will be done faster than Sega Saturn.

 

Anyway, I'd like to work with both editions, but of course we need to finish this project first.

 

P.S.: 

14 hours ago, MajorRawne said:

Omg - how to get Alien Vendetta maps converted so they'll run on a Playstation...

 

Hell Yeah I think a lot of people would like to play PSX Alien Vendetta

Share this post


Link to post
17 hours ago, Đeⓧiaz said:

 

I thought about "converting" those maps into D64, but I'm not sure that D64 Conversion will be done faster than Sega Saturn.

 

Anyway, I'd like to work with both editions, but of course we need to finish this project first.

I doubt it too, primarily because the Saturn port is highly similar. But really without a redone renderer, it'd be pointless. Why play the clunk fest that is the Saturn version when it'd be the same maps, but at terrible framerates, and not even all the features of the PS1 version?

 

Now if you were redoing the renderer, then sure, but without that, it's pure "because we could" bragging rights.

Edited by Dark Pulse

Share this post


Link to post

heh

 

The whole project is "because we can". And any further console Doom hacking projects are "because we can"

Share this post


Link to post
8 minutes ago, Đeⓧiaz said:

heh

 

The whole project is "because we can". And any further console Doom hacking projects are "because we can"

Yeah, but some "because we cans" are better than others. By that logic, we should be hacking the Doom 3DO port. :P

Share this post


Link to post

Er, somebody _is_ hacking the 3DO port! https://www.youtube.com/watch?v=_koZOUnEbfI

Share this post


Link to post
30 minutes ago, Dark Pulse said:

By that logic, we should be hacking the Doom 3DO port. :P

 

You says this like it's something bad. I was in the team which worked with the 3DO Doom hack, btw

Share this post


Link to post

It's seriously impressive for the hardware -- 12.5 MHz, even the GBA is 16 MHz -- and didn't get the development time it needed.

Share this post


Link to post
1 hour ago, Kroc said:

Er, somebody _is_ hacking the 3DO port! https://www.youtube.com/watch?v=_koZOUnEbfI

Yes, I know. I pointed him to XDelta patches as an easier way of applying his hack, as you'd see in his thread.

 

My point is we probably shouldn't be focusing on rushing to get level hacks for those weaker platforms done without a much-improved renderer that'd make playing the game tolerable on those platforms. 3DO Doom is easily the worst-performing of them all; Saturn Doom (as-is) is not much further up the ladder.

 

1 hour ago, Đeⓧiaz said:

You says this like it's something bad. I was in the team which worked with the 3DO Doom hack, btw

It's not, but there is a little thing about priority, after all.

 

It's hard enough getting people to play the PS1 version, so serious level hacks and so on are less likely for the lower platforms. (Yes, I'm aware of the 32X hack that adds levels back into the game, and someone HAD been hacking the SNES version before they disappeared.) While it's definitely great on a technical hacking level, let's be blunt - without rewrites that take better advantage of the hardware, they're not ports people are going to want to actually play, so it's really all about the technical challenge of squeezing every drop out of the hardware as possible, especially for people who want to play it on actual hardware. SNES and 32X, for example, their performance is probably about as good as those will get, barring someone inventing a whole new emulated chip (a la the MSU-1) that outdoes the technical prowess of the SuperFX on the SNES (or the VDP on the Sega side, but the 32X never had expansion chips - the VDP was for the Genesis, and was weaker than a 32X).

 

In that sense, the Saturn is a pretty viable target, since we know at one point there was a full 60 FPS, hardware-accelerated renderer in there, and indeed if it can be remade (and the lumps that were left in there re-accessed/reused), then Saturn could well wind up superior to the Playstation version (at least on OG hardware, since with emulation you can usually just overclock the emulated CPU to solve any FPS issues).

 

To me, though, the smart thing to do would be to start with the two most popular console versions - PS1, N64 - and then spread from there. Saturn would definitely be a prime target after those two. PS1, obviously, is being figured out now, and N64 is all but figured out except for map compression, and last I'd heard, Erick had a working implementation, but it resulted in slightly inferior compression compared to the original. (On the order of a couple dozen extra kb of space per map, IIRC - I remember a full 32 maps would take an extra 500k or so compared to the originals, from my back-of-the-envelope math.)

 

EDIT: Honestly, I'd love to see if the Playstation version's renderer can be improved as well, because I know from experience it ran stuff like Quake II at pretty damn good framerates. It may come with the caveat of affine texture warping, though, unless they can do what many PS1 games of the era did and use polygon subdivision/LOD to minimize that.

Edited by Dark Pulse

Share this post


Link to post

I've got your point. The main question is: Who will rewrite the rendererer of all those games. So, it means that all those potential hacks are dead from the start and we will get only the PSX and N64 versions of Extra Edition. YES, because nobody will do this. It is about 10+ years since people can hack maps for 3DO Doom & etc. And nobody improved the renderer even with the released source code. That's why I was posted previous messages with ignoring your idea of remaking the renderer.

 

But yeah, I admit, now it's sounds like waste of time (but to be honest, making classic maps to Doom 64 is also wasting time, there are a lot of people who ignored similar D64EX project, so I'm not sure that will work with the original version which will require the emulator/console itself).

 

So, after thinking about your words - I'm here just only for the PSX Master Edition. After this I'll quit until somebody will make an improved renderer.

Share this post


Link to post
16 hours ago, Đeⓧiaz said:

I've got your point. The main question is: Who will rewrite the rendererer of all those games. So, it means that all those potential hacks are dead from the start and we will get only the PSX and N64 versions of Extra Edition. YES, because nobody will do this. It is about 10+ years since people can hack maps for 3DO Doom & etc. And nobody improved the renderer even with the released source code. That's why I was posted previous messages with ignoring your idea of remaking the renderer.

 

But yeah, I admit, now it's sounds like waste of time (but to be honest, making classic maps to Doom 64 is also wasting time, there are a lot of people who ignored similar D64EX project, so I'm not sure that will work with the original version which will require the emulator/console itself).

 

So, after thinking about your words - I'm here just only for the PSX Master Edition. After this I'll quit until somebody will make an improved renderer.

Well don't get me wrong, I don't want to discourage you from hacking or attempting a new renderer for platforms that need it.

 

Just that before we talk about porting and adding custom levels, we should have optimized renderers for the platforms that run suboptimally so that people will actually play the custom levels on that port. Otherwise, as I said, it's pure bragging rights.

 

Hence, N64 is the next best target (and one where the renderer actually doesn't need to be rewritten!). Saturn is a prime target if the renderer can run at 60 FPS, especially if we can restore as much of the PS1's functionality as possible. But we'd better let Erick reverse the PS1 version for that first, since it's heavily based on that, and to have it be ideal, we'd need to restore a few functions (distinguishing Spectres, fire sky, colored sectors...) 

Share this post


Link to post

I see that new NRFTL maps is coming and there is more chances for beta 3.

On another side, there are many GEC maps which are not ready for long time.
I know the IoS maps is up to GEC but what about usual maps, like Neurosphere, Tech Gone Bad and Bloodsea Keep.
If GEC permits, they can free those slots (in case if this maps is not touched yet), Dark Pulse and I can speed up a process. I know GEC still doing The Living End for the last 3 months.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×