EPIC

TFX, Inferno, Wargasm, Typhoon, …
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

On to opcode 0006, and the two models that use it.
0006 0010 001a 001b 001c 0000 2300
So, we have a palette index, 3x vertices then 2 words that look like the sphere radius from opcode 0005.
Plotting those 3x vertices as vertex shaded triangle gives this:
amtrax_colverts.PNG
amtrax_colverts.PNG (8.29 KiB) Viewed 3418 times
These are obviously the positions of wheels, but what those vertices exactly define, I don't know.
Anyway, I can use 2 of them and the radius to draw cylinders. That will have to do until I can see what it should look like.
epic_wheels.PNG
epic_wheels.PNG (15.51 KiB) Viewed 3418 times
Let me know if all these pictures are taking up too much space. :)
User avatar
Krishty
Site Admin
Posts: 1271
Joined: 2022-Jan-09, 00:59

Re: EPIC

Post by Krishty »

mikew wrote: 2022-Jul-20, 17:26Anyway, I can use 2 of them and the radius to draw cylinders. That will have to do until I can see what it should look like.
Great! I’d think the three vertices are center, normal vector, and one vector to define the plane the cylinder “stands” on.
mikew wrote: 2022-Jul-20, 17:26Let me know if all these pictures are taking up too much space. :)
Last week’s backup was at whopping 53 MiB. If you keep posting like this, my webspace will be eaten up in 500 years :)
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

I'm not seeing any wheels at all in game footage from YT, but there may be multiple releases of the game.
epicamtrax.PNG
epicamtrax.PNG (142.67 KiB) Viewed 3412 times
All that's left is opcode 0011, used on two versions of a comms dish.
0011 000d 0038 0436
Basically, a palette index, a vertex and '0436'.
I put a yellow sphere at that vertex to see its location, and get this:
epicdishes.PNG
epicdishes.PNG (8.4 KiB) Viewed 3412 times
...but a poor in-game screenshot shows it to be a rod sticking out from the antenna. I would have thought more vertices would need to be specified for that.
epicdish.PNG
epicdish.PNG (76.75 KiB) Viewed 3412 times
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

Leaving the .3 files for now, and have a quick look at the .mp files in the 'dat' folder instead.
For 'liz.mp', which has size 4101 bytes, we can assume the first 5 bytes is some sort of header giving 4096 which is 64x64.
So, treating as a bitmap and reusing the palette, gives us this (magnified somewhat):
inliz.png
inliz.png (2.24 KiB) Viewed 3407 times
We've seen that sort of thing before with the animation frames, so can use the same code to resolve it
...we then get pretty close to the planet map as seen in the cockpit.
liz_both.PNG
liz_both.PNG (122.17 KiB) Viewed 3407 times
There is a separate .mp file for each mission in a planet

Well, that was comparatively easy. :D
User avatar
Krishty
Site Admin
Posts: 1271
Joined: 2022-Jan-09, 00:59

Re: EPIC

Post by Krishty »

mikew wrote: 2022-Jul-20, 21:32All that's left is opcode 0011, used on two versions of a comms dish.
0011 000d 0038 0436
Basically, a palette index, a vertex and '0436'.
I put a yellow sphere at that vertex to see its location, and get this:
epicdishes.PNG
...but a poor in-game screenshot shows it to be a rod sticking out from the antenna. I would have thought more vertices would need to be specified for that.
I could imagine that the 36 in 0436 actually is a vertex index, and they just re-purposed the most significant byte for something else. These models don’t look to me like having more than 255 vertices, after all 😜

mikew wrote: 2022-Jul-20, 21:32I'm not seeing any wheels at all in game footage from YT, but there may be multiple releases of the game.
Maybe the wheels aren’t meant to be rendered at all, and instead hook into the vehicle logic. It occurred to me that we have a similar situation with the hardpoints on TAW planes:
2011-06-02 ef0075.png
2011-06-02 ef0075.png (30.04 KiB) Viewed 3405 times
The 0075 opcode defines significant points like hardpoints, engine exhausts, etc. But those are never actually rendered.
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

Ha! Turns out that line was there all along, but Lean Viewer doesn't display lines which I totally forgot.
epic_castle.PNG
epic_castle.PNG (47.65 KiB) Viewed 3402 times
It still doesn't explain what opcode 0011 does, but it may specify the 'hit box' and is not normally displayed, as you suggest for those wheel positions.
A pity about the wheels. I thought mine looked pretty good. :D
User avatar
Krishty
Site Admin
Posts: 1271
Joined: 2022-Jan-09, 00:59

Re: EPIC

Post by Krishty »

mikew wrote: 2022-Jul-21, 20:34Ha! Turns out that line was there all along, but Lean Viewer doesn't display lines which I totally forgot.
Me too 🤦 Gotta fix that one day …
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

Back to the 'dat' folder, and the remaining file types to sort out are .hdd, .hud and .bin.
These seem to relate to the cockpit display from the different directions, front, rear, left & right.
The .hdd files look like they define the lower part of the screen. The byes are organized in a similar way to the .mp files I mentioned a couple of posts ago, but they are different sizes and my code isn't expecting that, so I'm going to leave that for now.
epid_hdd.PNG
epid_hdd.PNG (31.8 KiB) Viewed 3398 times
There are .hud files for front, rear, left & right and could well be compressed versions of the .hdd files.
There are also three .bin files and these start off with the same 12 bytes as the ,hud files. These looks very compressed, but there's no obvious pattern.
Anyway, something for later...
epic_hud.PNG
epic_hud.PNG (38.81 KiB) Viewed 3398 times
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

From a data file point of view, the only big mystery left is the 'levs' folder, which contains one .dat file for each of the 10 missions in the game.
There's an overall 'director' script (epicflow.jr) that defines some top level, but it looks like for each mission some sort of 'control' is handed over to the mission .dat files.

Code: Select all

;--------------------------------------------------------------
;			MISSION ONE 
;--------------------------------------------------------------



	JUMP	in_1
mission_1a_loop
	MARS	1	jinit.mid
	WAIT	100
	MARS	0
	MARS	1	j_5.mid

in_1
	X1	9 12 13

	TEXT	(310)	100

	ANIM	lnch0		2	ONESHOT		SLOW_FADE	

	IGEN	PaulX27.ig				SLOW_FADE


	MARS	0
	MISS	levs\flib.dat 0
	


	IF	complete = 1 THEN done_1a
	IF	lives = 0 THEN dead_1a


	TEXT	(1) 	200			
	JUMP	mission_1a_loop
So, the first mission uses 'levs\flib.dat' and at a first glance I have no idea how it is organized, so the next posts will look into that...
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

'flib.dat' is about 42kB, and is less than half the size of the next smallest mission file.
This first mission is in space only, and involves blowing up mines.
The file appears to be a composite of various data types, but contains no text elements.
Here it is visualized at 120 bytes per row.
epic_flib1.PNG
epic_flib1.PNG (24.75 KiB) Viewed 3393 times
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

Slowing down this vital activity as the weather has cooled down enough to go outside again. :)

The .dat file isn't quite what I was expecting, after a hundred or so unknown bytes at the start, there is a block of embedded .3 files without names. For the picture in the last post, it's about the first third of the file. The rest of the file looks like it has a lot of coordinates, but I haven't looked at that in detail yet.
The weird thing is that while most of the embedded .3 file are the same as those in the .3 folder, some of them are new. Also, some .3 files that are used in the mission are not in the embedded block.
Hmmn. always feels like there is some sort of misdirection going on,when looking at these data files.

I was expecting these .dat files to have bytecode elements,similar to TAW's .ssd files. That might be the case yet and I just need to look closer.
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

This game had quite an epic(!) intro for its day, but its looks suffer now when the original 320x200 is stretched across today's screens with somewhat higher resolution.
As mentioned earlier, the file 'epicflow.jr' lays out the sequence of events, but there is another level when this calls the .ig files which describe some animations using the game engine together with a background running as .256 animation.
So the first of these is 'paulx1.ig' which has a bunch of ships moving against a reddish backdrop.
epic_intro_text.PNG
epic_intro_text.PNG (33.34 KiB) Viewed 2542 times
Each ship has positional information described in the text file which may be the start and end points. The ships move towards the camera while the animation a10.256 is playing in the background. This can be seen on the YT video from earlier in this thread.
It would be good to visualize this somehow, so first I have to use my crude .3 to VRML converter. Hardly anything can use VRML these days, but I can use Blender to export to glTF which works quite well except for spheres.
So, what 3D engine to use? While I'd love to use TFXplorer, it isn't quite optimized yet for this sort of activity so going with Panda3d over Godot as it looks slightly easier for a non-programmer.
Anyway, with some frig factors for scale and inverting one axis, I can sort of get the ships in their relative starting positions.
epic_panda.PNG
epic_panda.PNG (265.81 KiB) Viewed 2542 times
Looks nicely anti-aliased already!

Now, I just need to work out:
1. How to move things
2. The coordinate system and scale
3. The position of the camera
4. The palette adjustment to make the ships more red (I assume that's one of the numbers in the first few lines of of 'paulx1.ig'
5. Get the animation 'a10.256' running at the same time
6. Synchronize everything
mikew
Data Genius
Posts: 559
Joined: 2022-Jan-09, 20:21

Re: EPIC

Post by mikew »

This game's original title was called 'Goldrunner III' according to this.
http://obligement.free.fr/articles/itwkenwright.php

Well, you live and learn...
Now I need to find out what happened to 'Goldrunner I' and 'Goldrunner II' :D

EDIT:
Actually, no I don't as the 'III' was probably a misunderstanding by that French article.
'Goldrunner 3D' makes more sense, as written about here:
https://retrocdn.net/images/7/77/TGM_UK_29.pdf
This includes some painful memories of the British music scene at the time. :(

EDIT2:
One last link:
https://www.oldies-but-goodies.fr/index ... est&id=286
Turns out there were 'Goldrunners 1 &2' which were Amiga games in the late 80s.
Some great background about DiD here, followed by a scathing review of EPIC.
Post Reply