So I finally found where they where hiding those codes...
#41
Same result. Bugged textures.

There's really only one thing either of us can do; either I send you my IDX/IMG data, or you send me yours. That's probably the only way for me to check if the program is running correctly on windows, or if it really is just my borked-up files. :l
96.5%
MORE
WUB WUB.
[Image: 54f5c31d9f2ce.gif]
Reply
#42
Check your PMs!
Reply
#43
Seriously, I'm away for one evening and you got the whole IMG file unpacked+decompressed?! Thumbs Up

Thought 0: texture 79 is obviously for the Genesis car... Tongue

Thought 1: So the file name-ish strings in the exe might just be left behind? Well, that sounds possible. I was hoping to be able to identify each file by a name, but trial&error wouldn't be so bad (you guys already seem to have found the bmps)... *keeps fingers crossed the "additional data" is still compressed strings somehow: note that they are all UPPERCASE and show very few punctuations (mostly just underscores)? Maybe that's intentionally? the strings gets compressed (not 8b aligned)? when packed/checked against the "additional data"?

One thing, though: if there's no unique name/id for each file, they must be found by order... Good to know if ever trying to repack a modified IMG file... New cars+tracks... *me dreaming again* I wonder if there's some polygon limit? Big Grin

Thought 2: grayscale textures? Well that saves memory (they probably used materials for colouring the models, like currently in recaged, and the textures are just for small details).

Thought 3: Mac, please just throw winrar away! Here's the program you should be using: http://www.7-zip.org/

Thought 4: the bumpmap fix only modifies the exe a bit (toggles a flag each rendering loop to cause a fallback to the old-but-working bump mapping). The source for the patcher: http://indigo176.blinkenshell.org/rollca...mpmapfix.c

Thought 5: I really must try that program out...

update: ok some initial feedback:
5.1) maybe add some check for both UPPER and lower case filenames? I know it's just a hack (although it's well-written), so it doesn't matter (but this way it'll also work for rc1 "ROLLCAGE.IDX"=>"Rollcage.idx" on case-sensitive filesystems).

5.2) it fails an assert on the rc1 img file (maybe it's just :
Code:
Writing:000 Compressed:16777215 Unpacked:16777215 Additional data:16711683
a.out: IMGHack.cpp:362: void GT20Buffer::copyFromOutput(int, unsigned int): Assertion `ptr_out + offset + count <= size_out' failed.
Avbruten (SIGABRT)

5.3) but it works on the rc1 demo! (on my windows partition, this time...) Everything seem to extract fine...

don't think we've seen this before?
   

"cool FMV"... Rolleyes
   

I found NO car textures (but there should be, right?), but I did find something I wasn't expecting:
   

5.4) and on the rc2 demo! (non-ext fs, again):

the car textures as usual (of all cars, even though it's just a demo), the usual loading screens, an "AMD 3D now" logo, and tons of southpark-ish characters (don't remember seeing them before, but maybe just different for the demo?)... one smaller (cut out of?) loading screen:
   
... and then something even more unexpected... three pictures: a man and woman kissing. a girl. and a boy (no doubt the family of someone working on the game, perhaps a secret loading screen switcharu sneaked into the demo?)

update 2: In case you wonder why I only got the demos installed on windows? After breaking the idx/img files I attempted to reinstall the games and rc1 just wouldn't start working (yay! windows 7 helping the user!), so I attempted to install the demos... Anyway, I decided to install the real rc1 on a proper os (a second debian partition), which worked perfectly (it's now easier to use wine compared to the real windows... what does this mean? :p ). I'm still a bit puzzled why the IMGhack extractor didn't work on the full install on debian, but if I get the time I'll try to figure it out.


Cheers!
Try systemd. They said.
It'll be just as reliable as init. They said.
It'll be completely bug-free. They said.
Our monolithic windows-approach is far superior to the Unix-approach. They said.
Okay, so the codebase has grown gigantic and no one but our paid group of full-time developers who created it can maintain it and fix bugs... but it'll be fine. They said.
Okay, we'll shove it down your throat whether you like it or not. They said.

I guess it's finally time to look into GuixSD and/or devuan.

Code:
systemd-journald(195): Received SIGTERM.
systemd[1]: systemd-udevd.service has no holdoff time, scheduling restart.
systemd[1]: systemd-udevd.service failed to schedule restart job: final.target is queued, ignoring restart request for unit systemd-udevd.service
systemd[1]: Unit systemd-udevd.service entered failed state.
systemd[1]: systemd-journald.service has no holdoff time, scheduling restart.
systemd[1]: systemd-journald.service failed to schedule restart job: final.target is queued, ignoring restart request for unit systemd-journald.service
systemd[1]: Unit systemd-journald.service entered failed state.
Reply
#44
Still early days on the BTP format.. (from 083):

   
Reply
#45
It doesn't work on 64bit Debian? I wonder if it could be a 32/64bit issue? I developed it on a 32bit arch, but I'll test it on my other 64bit fedora install. C is a pain in the ass for silently breaking on signing and overflow issues.

I didn't test it on RC1 either - it'd suck if they have different IDX formats. Probably the easiest way to support different capitalisations would be to add optional parameters for the IDX and IMG files.

Code:
$ ./IMGHack RollCage.IDX rollCAGE.imG
Reply
#46
I have no idea what the "not obvious" parts of that texture are for ... my guess may be for all the 'transparent' game things such as dirt, smoke, tire-mark effects. The quality is too poor to be able to really understand it.


@ Slinger - I'm not installing 7-zip. Too lazy. Tongue

Anyways.. if you believe the cars have materials ... that would be interesting, because that could potentially pose the possibility that the cars may well be in an easy-to-understand file format O_o; of course since none of these files have the formats defined obviously, then we don't know what the actual compression/encoding on them is so we don't know what works and what doesn't..

need ... obj ... files ... :l

it's still a bit odd that so many of these textures are grayscaled. Makes me wonder if the track textures are too ... or could it just be a bug in the decompressor program? (unlikely since all those bitmaps were ripped fine... <__>)
96.5%
MORE
WUB WUB.
[Image: 54f5c31d9f2ce.gif]
Reply
#47
The image from 083 is grayscale because it's either indexed (and I don't have the palette set up yet), or it's just one of the red/green/blue channels.
Reply
#48
Hm.

Could this be the same issue that the car textures could have as well? Seems unlikely though.. just doesn't really make much sense to me.

Then again, we're talking about a game that used to run on 4 megabytes of video RAM.. and here we are where people are starting to get hold of graphics cards that have almost 4 GIGAbytes (well, apparently 3GB ones are around -_-)

technology.. lol.


edit

oh, and for the record ... my Windows is 64-bit. Not sure if that would affect the windows-compiled binary of your decompression script.

afaik my Ubuntu dist is 32-bit (for some reason the 64-bit version of Lucid LTS would hang about ten seconds in on reading the CD (not a CD-read error - it just hates my mainboard for some reason)). O_o
96.5%
MORE
WUB WUB.
[Image: 54f5c31d9f2ce.gif]
Reply
#49
(2012-04-25, 10:21 PM)Spont Wrote: 00000000 42 54 50 20 00 00 00 00 c0 02 00 02 9d 0b 00 00 |BTP ............|
00000010 61 01 00 00 50 00 00 00 00 00 00 00 50 55 14 00 |a...P.......PU..|
00000020 00 00 00 00 90 17 00 00 a0 40 14 00 00 00 00 00 |.........@......|
00000030 00 00 07 06 20 00 12 00 3c 57 14 00 cc 58 14 00 |.... ...<W...X..|
00000040 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 |................|


Key:
VRAM BITMAP
COBJECTS
CLOUD DATA
TPAGE DATA
PALETTE


The Texture Paging (TPAGE) data is as follows:
Code:
00 01  00 01  00 00  00 00  00 00 00 00
00 01  00 01  00 00  00 00  00 00 01 00
00 01  00 01  00 00  00 00  00 00 02 00
00 01  60 00  00 00  00 00  00 00 03 00
00 01  0c 00  01 00  00 00  00 60 03 00
00 01  00 01  02 00  00 00  00 6c 03 00
00 01  f0 00  02 00  00 00  00 6c 04 00
00 01  70 00  02 00  00 00  00 5c 05 00

Each texture on its own line:
Width, Height, Palette, ?, Vertical Offset

Should complete the tool to view the BTP files later tonight.
Reply
#50
Running out of time, but the textures are coming through okay now..    

I've split the files up into their type:

./BMP:
060 069 078 242 251 260 269 278 287
061 070 079 243 252 261 270 279 288
062 071 235 244 253 262 271 280
063 072 236 245 254 263 272 281
064 073 237 246 255 264 273 282
065 074 238 247 256 265 274 283
066 075 239 248 257 266 275 284
067 076 240 249 258 267 276 285
068 077 241 250 259 268 277 286

./BTP: [67]
081 097 113 129 145 161 177 193 209
083 099 115 131 147 163 179 195 211
085 101 117 133 149 165 181 197 233
087 103 119 135 151 167 183 199
089 105 121 137 153 169 185 201
091 107 123 139 155 171 187 203
093 109 125 141 157 173 189 205
095 111 127 143 159 175 191 207

./GFXM: [67]
080 096 112 128 144 160 176 192 208
082 098 114 130 146 162 178 194 210
084 100 116 132 148 164 180 196 232
086 102 118 134 150 166 182 198
088 104 120 136 152 168 184 200
090 106 122 138 154 170 186 202
092 108 124 140 156 172 188 204
094 110 126 142 158 174 190 206

./MYS: [20]
212 215 218 221 224 227 230
213 216 219 222 225 228 231
214 217 220 223 226 229

./PINP: [60]
000 007 014 021 028 035 042 049 056
001 008 015 022 029 036 043 050 057
002 009 016 023 030 037 044 051 058
003 010 017 024 031 038 045 052 059
004 011 018 025 032 039 046 053
005 012 019 026 033 040 047 054
006 013 020 027 034 041 048 055



So it looks like the BTP files are texture packs and the GFXM are the track files. There is one BTP for each GFXM, and the BTP files contain a lot of the same textures.

MYS files don't have a header - hence "MYSterious", but they all repeat their first 4 bytes and are the same size.. so I'm grouping them together. Judging by the data patterns (rows of very similar random-looking numbers), they look like 3d models. Cars?

PINP files could be miscellaneous/shared models? Both they and the GFXM files contain repeated "MODL" sections.

Reply
#51
Outworld's skybox? O_o

My guess would the GFXM models are the tracks (since they seem grouped with the BTP files) ... and my guess would be the PINP files are the game models (cars, weapons, buildings) ... because they come just before all the car textures do. Unfortunately I could be wrong but the models were never that complicated (the game worlds are, on the other hand) so they would be of relatively small file-size.


No idea what the MYSterious ones could be ... additional materials or texture mapping data? they could be something else such as game information (car stats or possibly even the waypoints for the AI (the AI used waypoints to navigate the tracks after all) )

To be honest this intrigues me to locate Motorhead again since it's the same era of video game and there could potentially be a connection between the file formats being used ... though it's unlikely. It's just that both were PC AND playstation games. I just have to locate my install.

edit

I forgot how many tracks there are in the game (normal tracks - not scramble, deathmatch or rubble soccer tracks as those don't have AI). If the number of normal race tracks is 20 ... well, there are 20 MYS files. I'll try and check myself once I get back from shopping; I think I have the whole game unlocked on this system.
96.5%
MORE
WUB WUB.
[Image: 54f5c31d9f2ce.gif]
Reply
#52
Bump.

There are 20 MYS files, right? There are 20 race tracks. The numbers match; I'm going to guess the MYS files are the AI waypoint data for each campaign track.
96.5%
MORE
WUB WUB.
[Image: 54f5c31d9f2ce.gif]
Reply
#53
Awesome! Thanks for confirming the numbers. I think your assumption is solid - I wouldn't have guessed waypoints, but it makes a lot of sense.

213:
Code:
8f 01 00 00 8f 01 00 00  f2 79 ea 11 16 05 dd ff
8f 85 03 01 5a b2 e2 12  13 a6 dd ff b6 16 cd 00
fd 07 40 16 02 1c 20 81  f1 07 40 16 ff 83 40 81
eb 07 f0 15 fe cf 00 81  e1 0b 10 16 fe 0b e1 80
d5 0b f0 15 fe 3f c1 80  cc 07 d0 15 fe 6b a1 80
c4 07 b0 15 fe 8f 81 80  be 07 a0 15 ff af 61 80

"8f 01 00 00" translates to "399". Why it should be repeated twice I don't know. Should be easier to understand this format once the tracks are decoded.
Reply
#54
If it was possible to swap the files around in the IMG file and have it still work in-game, I could probably just be a jerk to artificial intelligence everywhere and swap some of the MYS files and see if it throws the AI off during races.


I couldn't really guess what the format for the data would be organised for, though. My simplest guess would be co-ordinates and possibly any data such as the sort of speed the car needs to be at (if it's a corner and it needs to slow down). Are there any other repeated pieces of data in the files? Any repeated chunks of data through one individual file or chunks that look similar to one another with minor differences? The AI has multiple paths through the tracks so there may be sections that appear to be duplicated or very similar that would equate to the waypoints of each 'racing line' being at points identical or very close.

I'm only going on a guess here so I could be completely wrong. I'm trying to think what the purpose of the duplicated first bytes are, unless they're supposed to denote the start/finish or whether these files are for something completely different and my hypothesis is just completely wrong :l


edit

btw I only know the game used waypoints because one of the devs mentioned it on the old forum when I asked about track formats.
96.5%
MORE
WUB WUB.
[Image: 54f5c31d9f2ce.gif]
Reply
#55
Interesting idea -- we could certainly pack files back into an IDX/IMG pair. I don't see anything which indicates that the files need to be compressed - packing them into an IMG uncompressed might work.

Right now I'm assuming fixed-point numbers for the coordinates. Once the number format is found, it'll be easier to figure out what they mean!

Is there any upper limit to the number of alternate routes? Do tracks get raced in reverse?

If you haven't already, click here:
http://recaged.net/forums/private.php

Reply
#56
I've stared at these MODL sections till my eyes hurt!

These are from 001 (PINP), and it looks like textures are embedded earlier in the file.

Code:
00005310  4d 4f 44 4c 44 00 52 00  01 00 00 00 50 00 00 00  |MODLD.R.....P...|
00005320  e0 02 00 00 70 11 00 00  00 03 00 00 00 07 f0 0c  |....p...........|
00005330  32 00 1c 00 54 00 01 0a  00 00 00 00 05 00 00 00  |2...T...........|
00005340  70 11 30 00 78 0d 8a 0a  c4 d5 c4 d5 70 91 44 04  |p.0.x.......p.D.|
00005350  40 0e 00 00 00 05 00 00  00 00 00 00 60 10 00 00  |@...........`...|
00005360  35 08 38 00 fa 00 90 3c  35 07 08 00 fa 00 90 3c  |5.8....<5......<|
00005370  1e 20 07 08 18 00 20 30  26 25 38 35 d6 00 f0 08  |. .... 0&%85....|
00005380  26 38 20 08 4e 30 ec 3f  26 20 2c 00 47 28 0c 00  |&8 .N0.?& ,.G(..|
00005390  07 35 1e 25 59 c0 d3 3e  1e 25 2f 00 47 dc 03 00  |.5.%Y..>.%/.G...|
000053a0  01 0b 02 0c 04 03 60 3d  0e 02 0a 0c 0c 04 9c 3f  |......`=.......?|
000053b0  09 0d 0a 0e d6 00 20 37  01 0d 0b 09 0b f4 83 3d  |...... 7.......=|
000053c0  06 36 05 37 fa 00 80 03  18 17 05 06 18 00 f0 0f  |.6.7............|
000053d0  05 37 18 26 59 44 4c 01  26 2c 2b 00 47 28 0c 00  |.7.&YDL.&,+.G(..|
000053e0  18 26 2b 00 47 28 0c 00  25 36 17 06 4e d4 33 00  |.&+.G(..%6..N.3.|
000053f0  25 17 30 00 47 dc 03 00  25 30 2f 00 47 dc 03 00  |%.0.G...%0/.G...|
00005400  25 26 36 37 d6 00 20 37  21 1d 22 1f 3c 03 d0 35  |%&67.. 7!.".<..5|
00005410  24 22 20 1f 00 38 0c 3b  1e 23 20 24 e5 00 e0 38  |$" ..8.;.# $...8|
00005420  21 23 1d 1e 00 cc 03 3b  11 03 12 04 04 03 b0 02  |!#.....;........|
00005430  04 14 12 10 0b 10 9c 02  13 0f 14 10 d6 00 f0 08  |................|
00005440  13 03 0f 11 0c 00 84 00  0c 27 0a 00 0b d0 bd 32  |.........'.....2|
00005450  10 28 12 29 11 70 3c 07  12 29 0c 27 04 5b 0f 00  |.(.).p<..).'.[..|
00005460  34 11 33 0b 04 af 00 00  0b 11 0c 12 00 03 00 00  |4.3.............|
00005470  29 3b 27 31 13 04 0c 00  28 3b 29 00 33 54 9c 05  |);'1....(;).3T..|
00005480  2a 27 31 00 33 54 8c 3a  2a 0a 27 00 32 80 0c 39  |*'1.3T.:*.'.2..9|
00005490  11 34 0f 00 0b 34 62 0d  09 2d 0b 33 11 94 e3 38  |.4...4b..-.3...8|
000054a0  33 40 34 41 13 00 04 00  2d 40 33 00 33 b0 83 3a  |3@4A....-@3.3..:|
000054b0  2e 34 41 00 33 b0 93 05  2e 0f 34 00 32 84 13 07  |.4A.3.....4.2...|
000054c0  15 19 16 1a 3c 03 40 0a  1a 1c 16 18 00 38 1c 05  |....<.@......8..|
000054d0  1b 17 1c 18 e5 00 30 07  1b 19 17 15 00 cc 13 05  |......0.........|
000054e0  1d 3e 09 2d 00 94 e3 38  3f 40 3e 2d f4 97 e3 38  |.>.-...8?@>-...8|
000054f0  42 41 3f 40 f2 03 04 00  0f 2e 15 43 00 94 33 07  |BA?@.......C..3.|
00005500  2e 41 43 42 00 c0 a3 05  3f 44 42 00 45 dc 03 00  |.ACB....?DB.E...|
00005510  44 3f 2f 00 45 dc 03 00  3e 1d 2f 00 1c 90 f3 38  |D?/.E...>./....8|
00005520  42 30 43 00 1c 90 23 07  30 15 43 00 1c 90 23 07  |B0C...#.0.C...#.|
00005530  2f 3f 3e 00 1c 90 f3 38  44 30 42 00 45 dc 13 00  |/?>....8D0B.E...|
00005540  16 32 10 28 00 70 3c 07  3a 3b 32 28 f4 73 3c 07  |.2.(.p<.:;2(.s<.|
00005550  3c 31 3a 3b f2 07 0c 00  0a 2a 1f 3d 00 70 ec 38  |<1:;.....*.=.p.8|
00005560  2a 31 3d 3c 00 44 7c 3a  3a 39 3c 00 45 28 0c 00  |*1=<.D|::9<.E(..|
00005570  39 3a 2b 00 45 28 1c 00  32 16 2b 00 1c 74 2c 07  |9:+.E(..2.+..t,.|
00005580  3c 2c 3d 00 1c 74 fc 38  2c 1f 3d 00 1c 74 fc 38  |<,=..t.8,.=..t.8|
00005590  2b 3a 32 00 1c 74 2c 07  39 2c 3c 00 45 28 0c 00  |+:2..t,.9,<.E(..|
000055a0  18 2b 16 00 00 00 0c 00  2c 20 1f 00 00 00 0c 00  |.+......, ......|
000055b0  1e 2f 1d 00 00 00 04 00  30 17 15 00 00 00 04 00  |./......0.......|
000055c0  1f 1d 0a 09 00 00 00 30  15 16 0f 10 00 00 00 10  |.......0........|
000055d0  09 0f 0a 00 00 03 00 00  2b 2c 39 00 47 28 0c 00  |........+,9.G(..|
000055e0  20 18 17 00 00 01 00 00  2f 30 44 00 47 dc 03 00  | ......./0D.G...|
000055f0  3a 00 1a 00 43 00 1a 00  1a 00 72 00 1a 00 5a 00  |:...C.....r...Z.|
00005600  5a 00 21 00 01 00 01 00  01 00 01 00 07 00 00 00  |Z.!.............|
00005610  9a 78 64 25 a8 79 64 25  13 9a 78 64 13 a8 79 64  |.xd%.yd%..xd..yd|
00005620  a9 78 64 25 98 7a 64 25  13 a9 78 64 13 98 7a 64  |.xd%.zd%..xd..zd|
00005630  56 a2 89 47 56 82 9a 47  13 56 a2 89 13 56 82 9a  |V..GV..G.V...V..|
00005640  56 92 8a 47 56 82 a9 47  13 56 92 8a 13 56 82 a9  |V..GV..G.V...V..|
00005650  a7 89 54 26 87 9a 54 26  13 a7 89 54 13 87 9a 54  |..T&..T&...T...T|
00005660  97 8a 54 26 87 a9 54 26  13 97 8a 54 13 87 a9 54  |..T&..T&...T...T|
00005670  65 72 9a 48 65 72 a8 49  13 65 72 9a 13 65 72 a8  |er.Her.I.er..er.|
00005680  65 72 a9 48 65 72 98 4a  13 65 72 a9 13 65 72 98  |er.Her.J.er..er.|
00005690  a4 89 27 56 84 9a 27 56  13 a4 89 27 13 84 9a 27  |..'V..'V...'...'|
000056a0  94 8a 27 56 84 a9 27 56  13 94 8a 27 13 84 a9 27  |..'V..'V...'...'|
000056b0  62 45 9a 78 62 45 a8 79  13 62 45 9a 13 62 45 a8  |bE.xbE.y.bE..bE.|
000056c0  62 45 a9 78 62 45 98 7a  13 62 45 a9 13 62 45 98  |bE.xbE.z.bE..bE.|
000056d0  74 9a 28 65 74 a8 29 65  13 74 9a 28 13 74 a8 29  |t.(et.)e.t.(.t.)|
000056e0  74 a9 28 65 74 98 2a 65  13 74 a9 28 13 74 98 2a  |t.(et.*e.t.(.t.*|
000056f0  52 46 a7 89 52 46 87 9a  13 52 46 a7 13 52 46 87  |RF..RF...RF..RF.|
00005700  52 46 97 8a 52 46 87 a9  13 52 46 97 13 52 46 87  |RF..RF...RF..RF.|
00005710  9a 78 64 25 a8 79 64 25  31 9a 78 64 31 a8 79 64  |.xd%.yd%1.xd1.yd|
00005720  a9 78 64 25 98 7a 64 25  31 a9 78 64 31 98 7a 64  |.xd%.zd%1.xd1.zd|
00005730  56 a2 89 47 56 82 9a 47  31 56 a2 89 31 56 82 9a  |V..GV..G1V..1V..|
00005740  56 92 8a 47 56 82 a9 47  31 56 92 8a 31 56 82 a9  |V..GV..G1V..1V..|
00005750  a7 89 54 26 87 9a 54 26  31 a7 89 54 31 87 9a 54  |..T&..T&1..T1..T|
00005760  97 8a 54 26 87 a9 54 26  31 97 8a 54 31 87 a9 54  |..T&..T&1..T1..T|
00005770  65 72 9a 48 65 72 a8 49  31 65 72 9a 31 65 72 a8  |er.Her.I1er.1er.|
00005780  65 72 a9 48 65 72 98 4a  31 65 72 a9 31 65 72 98  |er.Her.J1er.1er.|
00005790  a4 89 27 56 84 9a 27 56  31 a4 89 27 31 84 9a 27  |..'V..'V1..'1..'|
000057a0  94 8a 27 56 84 a9 27 56  31 94 8a 27 31 84 a9 27  |..'V..'V1..'1..'|
000057b0  62 45 9a 78 62 45 a8 79  31 62 45 9a 31 62 45 a8  |bE.xbE.y1bE.1bE.|
000057c0  62 45 a9 78 62 45 98 7a  31 62 45 a9 31 62 45 98  |bE.xbE.z1bE.1bE.|
000057d0  74 9a 28 65 74 a8 29 65  31 74 9a 28 31 74 a8 29  |t.(et.)e1t.(1t.)|
000057e0  74 a9 28 65 74 98 2a 65  31 74 a9 28 31 74 98 2a  |t.(et.*e1t.(1t.*|
000057f0  52 46 a7 89 52 46 87 9a  31 52 46 a7 31 52 46 87  |RF..RF..1RF.1RF.|
00005800  52 46 97 8a 52 46 87 a9  31 52 46 97 31 52 46 87  |RF..RF..1RF.1RF.|
00005810  13 00 00 00 13 00 00 00  25 00 00 00 25 00 00 00  |........%...%...|
00005820  13 00 00 00 13 00 00 00  25 00 00 00 25 00 00 00  |........%...%...|
00005830  13 00 00 00 13 00 00 00  47 00 00 00 47 00 00 00  |........G...G...|
00005840  13 00 00 00 13 00 00 00  47 00 00 00 47 00 00 00  |........G...G...|
00005850  13 00 00 00 13 00 00 00  26 00 00 00 26 00 00 00  |........&...&...|
00005860  13 00 00 00 13 00 00 00  26 00 00 00 26 00 00 00  |........&...&...|
00005870  13 00 00 00 13 00 00 00  48 00 00 00 49 00 00 00  |........H...I...|
00005880  13 00 00 00 13 00 00 00  48 00 00 00 4a 00 00 00  |........H...J...|
00005890  13 00 00 00 13 00 00 00  56 00 00 00 56 00 00 00  |........V...V...|
000058a0  13 00 00 00 13 00 00 00  56 00 00 00 56 00 00 00  |........V...V...|
000058b0  13 00 00 00 13 00 00 00  78 00 00 00 79 00 00 00  |........x...y...|
000058c0  13 00 00 00 13 00 00 00  78 00 00 00 7a 00 00 00  |........x...z...|
000058d0  13 00 00 00 13 00 00 00  65 00 00 00 65 00 00 00  |........e...e...|
000058e0  13 00 00 00 13 00 00 00  65 00 00 00 65 00 00 00  |........e...e...|
000058f0  13 00 00 00 13 00 00 00  89 00 00 00 9a 00 00 00  |................|
00005900  13 00 00 00 13 00 00 00  8a 00 00 00 a9 00 00 00  |................|
00005910  31 00 00 00 31 00 00 00  25 00 00 00 25 00 00 00  |1...1...%...%...|
00005920  31 00 00 00 31 00 00 00  25 00 00 00 25 00 00 00  |1...1...%...%...|
00005930  31 00 00 00 31 00 00 00  47 00 00 00 47 00 00 00  |1...1...G...G...|
00005940  31 00 00 00 31 00 00 00  47 00 00 00 47 00 00 00  |1...1...G...G...|
00005950  31 00 00 00 31 00 00 00  26 00 00 00 26 00 00 00  |1...1...&...&...|
00005960  31 00 00 00 31 00 00 00  26 00 00 00 26 00 00 00  |1...1...&...&...|
00005970  31 00 00 00 31 00 00 00  48 00 00 00 49 00 00 00  |1...1...H...I...|
00005980  31 00 00 00 31 00 00 00  48 00 00 00 4a 00 00 00  |1...1...H...J...|
00005990  31 00 00 00 31 00 00 00  56 00 00 00 56 00 00 00  |1...1...V...V...|
000059a0  31 00 00 00 31 00 00 00  56 00 00 00 56 00 00 00  |1...1...V...V...|
000059b0  31 00 00 00 31 00 00 00  78 00 00 00 79 00 00 00  |1...1...x...y...|
000059c0  31 00 00 00 31 00 00 00  78 00 00 00 7a 00 00 00  |1...1...x...z...|
000059d0  31 00 00 00 31 00 00 00  65 00 00 00 65 00 00 00  |1...1...e...e...|
000059e0  31 00 00 00 31 00 00 00  65 00 00 00 65 00 00 00  |1...1...e...e...|
000059f0  31 00 00 00 31 00 00 00  89 00 00 00 9a 00 00 00  |1...1...........|
00005a00  31 00 00 00 31 00 00 00  8a 00 00 00 a9 00 00 00  |1...1...........|

Code:
00005a10  4d 4f 44 4c 30 00 30 00  01 00 00 00 50 00 00 00  |MODL0.0.....P...|
00005a20  d0 01 00 00 14 12 00 00  f0 01 00 00 00 00 00 00  |................|
00005a30  32 00 1c 00 54 00 00 0a  00 00 00 00 05 00 00 00  |2...T...........|
00005a40  20 f1 30 00 20 f1 8a 00  20 f1 20 f1 14 92 00 00  | .0. ... . .....|
00005a50  9c 29 00 00 f0 03 00 00  00 00 00 00 20 f1 00 00  |.).......... ...|
00005a60  1e 25 20 26 10 03 90 05  25 07 26 08 fa 00 80 03  |.% &....%.&.....|
00005a70  07 1e 08 20 18 00 20 30  26 08 20 00 59 40 9c 3f  |... .. 0&. .Y@.?|
00005a80  07 25 1e 00 59 c4 93 3f  01 0b 02 0c 04 03 60 3d  |.%..Y..?......`=|
00005a90  0e 02 0a 0c 0c 04 9c 3f  09 0d 0a 0e d6 00 20 37  |.......?...... 7|
00005aa0  01 0d 0b 09 0b f4 83 3d  2f 17 2c 18 00 03 00 00  |.......=/.,.....|
00005ab0  17 06 18 05 18 00 f0 0f  06 2f 05 2c f2 00 b0 3a  |........./.,...:|
00005ac0  05 2c 18 00 58 40 0c 00  2f 06 17 00 58 c4 03 00  |.,..X@../...X...|
00005ad0  21 1d 22 1f 3c 03 d0 35  24 22 20 1f 00 38 0c 3b  |!.".<..5$" ..8.;|
00005ae0  1e 23 20 24 e5 00 e0 38  21 23 1d 1e 00 cc 03 3b  |.# $...8!#.....;|
00005af0  11 03 12 04 04 03 b0 02  04 14 12 10 0b 10 9c 02  |................|
00005b00  13 0f 14 10 d6 00 f0 08  13 03 0f 11 0c 00 84 00  |................|
00005b10  0b 11 27 29 01 d7 0f 00  11 0f 29 10 fd 4f cf 0f  |..')......)..O..|
00005b20  0f 09 10 0a 00 01 00 00  09 0b 0a 27 00 00 00 30  |...........'...0|
00005b30  10 0a 29 27 49 2c 0c 00  09 0f 0b 11 13 00 04 00  |..)'I,..........|
00005b40  2a 28 0a 10 00 01 00 00  15 19 16 1a 3c 03 40 0a  |*(..........<.@.|
00005b50  1a 1c 16 18 00 38 1c 05  1b 17 1c 18 e5 00 30 07  |.....8........0.|
00005b60  1b 19 17 15 00 cc 13 05  2d 2e 09 0f 00 03 00 00  |........-.......|
00005b70  2e 30 0f 00 10 94 33 07  2f 2d 09 00 10 94 e3 38  |.0....3./-.....8|
00005b80  30 2f 0f 09 00 00 0c 00  2f 30 2d 2e 12 00 04 00  |0/....../0-.....|
00005b90  28 2b 10 00 f1 97 e3 38  2c 2a 0a 00 f1 97 33 07  |(+.....8,*....3.|
00005ba0  2c 2b 2a 28 ef 03 04 00  2b 2c 10 0a 00 00 0c 00  |,+*(....+,......|
00005bb0  09 0f 0a 10 00 03 00 00  0f 17 10 18 00 00 00 10  |................|
00005bc0  17 1e 18 20 00 01 00 00  1e 09 20 0a 00 00 00 30  |... ...... ....0|
00005bd0  18 20 10 0a 00 04 0c 00  1e 17 09 0f 00 00 04 00  |. ..............|
00005be0  22 00 1a 00 01 00 1a 00  1a 00 1a 00 11 00 1a 00  |"...............|
00005bf0  1a 00 19 00 02 00 12 00  01 00 09 00 09 00 0e 00  |................|
00005c00  31 52 86 9a 31 65 42 a8  31 62 75 a8 31 56 42 87  |1R..1eB.1bu.1VB.|
00005c10  31 52 86 a9 31 65 42 98  31 62 75 98 31 56 42 87  |1R..1eB.1bu.1VB.|
00005c20  31 52 a6 89 31 65 42 9a  31 62 75 9a 31 56 42 a7  |1R..1eB.1bu.1VB.|
00005c30  31 52 96 8a 31 65 42 a9  31 62 75 a9 31 56 42 97  |1R..1eB.1bu.1VB.|
00005c40  31 a8 79 24 31 84 9a 57  31 87 9a 24 31 74 a8 69  |1.y$1..W1..$1t.i|
00005c50  31 98 7a 24 31 84 a9 57  31 87 a9 24 31 74 98 6a  |1.z$1..W1..$1t.j|
00005c60  31 9a 78 24 31 a4 89 57  31 a7 89 24 31 74 9a 68  |1.x$1..W1..$1t.h|
00005c70  31 a9 78 24 31 94 8a 57  31 97 8a 24 31 74 a9 68  |1.x$1..W1..$1t.h|
00005c80  52 86 9a 47 65 42 a8 79  62 75 a8 49 56 42 87 9a  |R..GeB.ybu.IVB..|
00005c90  52 86 a9 47 65 42 98 7a  62 75 98 4a 56 42 87 a9  |R..GeB.zbu.JVB..|
00005ca0  52 a6 89 47 65 42 9a 78  62 75 9a 48 56 42 a7 89  |R..GeB.xbu.HVB..|
00005cb0  52 96 8a 47 65 42 a9 78  62 75 a9 48 56 42 97 8a  |R..GeB.xbu.HVB..|
00005cc0  a8 79 24 65 84 9a 57 26  87 9a 24 56 74 a8 69 25  |.y$e..W&..$Vt.i%|
00005cd0  98 7a 24 65 84 a9 57 26  87 a9 24 56 74 98 6a 25  |.z$e..W&..$Vt.j%|
00005ce0  9a 78 24 65 a4 89 57 26  a7 89 24 56 74 9a 68 25  |.x$e..W&..$Vt.h%|
00005cf0  a9 78 24 65 94 8a 57 26  97 8a 24 56 74 a9 68 25  |.x$e..W&..$Vt.h%|
00005d00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d20  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d30  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d40  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d50  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d60  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d70  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d80  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005d90  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005da0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005db0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005dc0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005dd0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005de0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005df0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005e00  47 00 00 00 79 00 00 00  49 00 00 00 9a 00 00 00  |G...y...I.......|
00005e10  47 00 00 00 7a 00 00 00  4a 00 00 00 a9 00 00 00  |G...z...J.......|
00005e20  47 00 00 00 78 00 00 00  48 00 00 00 89 00 00 00  |G...x...H.......|
00005e30  47 00 00 00 78 00 00 00  48 00 00 00 8a 00 00 00  |G...x...H.......|
00005e40  65 00 00 00 26 00 00 00  56 00 00 00 25 00 00 00  |e...&...V...%...|
00005e50  65 00 00 00 26 00 00 00  56 00 00 00 25 00 00 00  |e...&...V...%...|
00005e60  65 00 00 00 26 00 00 00  56 00 00 00 25 00 00 00  |e...&...V...%...|
00005e70  65 00 00 00 26 00 00 00  56 00 00 00 25 00 00 00  |e...&...V...%...|
00005e80  31 00 00 00 31 00 00 00  31 00 00 00 31 00 00 00  |1...1...1...1...|
00005e90  31 00 00 00 31 00 00 00  31 00 00 00 31 00 00 00  |1...1...1...1...|
00005ea0  31 00 00 00 31 00 00 00  31 00 00 00 31 00 00 00  |1...1...1...1...|
00005eb0  31 00 00 00 31 00 00 00  31 00 00 00 31 00 00 00  |1...1...1...1...|
00005ec0  31 00 00 00 31 00 00 00  31 00 00 00 31 00 00 00  |1...1...1...1...|
00005ed0  31 00 00 00 31 00 00 00  31 00 00 00 31 00 00 00  |1...1...1...1...|
00005ee0  31 00 00 00 31 00 00 00  31 00 00 00 31 00 00 00  |1...1...1...1...|
00005ef0  31 00 00 00 31 00 00 00  31 00 00 00 31 00 00 00  |1...1...1...1...|
00005f00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f20  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f30  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f40  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f50  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f60  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f70  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f80  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005f90  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005fa0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005fb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005fc0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005fd0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005fe0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00005ff0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

There seem to be three sections, so I'm assuming Face Data/Coordinates/Texture offsets. Plenty of patterns, but I can't understand any of them - most seem to match xyxy rather than xyzxyz.

Any ideas?
Reply
#57
First of all: something I should have written earlier but forgot until now: I have Proof that the strings in the exe are used to id the files in the img (at least in rc1):

I swapped all occurrences of "LOW__LEV1_???" and "LOW__LEV2_???" (where ??? are: BT6, BL6, BLP, BTP) and the first two tracks at the easy league got swapped in-game.

So I'm confident the strings are used to ID the files some way. But actually how, I don't know...

But I could be wrong about suffixes when it comes to rc2, as the file names are without suffix in the exes:
Code:
FOOTY1
PURSUIT5
PURSUIT4
PURSUIT3
PURSUIT2
PURSUIT1
DEATH5
DEATH4
DEATH3
DEATH2
DEATH1
TRAIN10
TRAIN09
TRAIN08
TRAIN07
TRAIN06
TRAIN05
TRAIN04
TRAIN03
TRAIN02
TRAIN01
SCRAM25
SCRAM24
SCRAM23
.................... etc.........

I haven't tried swapping then around, but if it's like in rc1 then the files in the IMG are ID'd uniquely by these strings. Btw: the only files with suffixes I found (that aren't real/existing files) are:
Code:
conrecdi.dat
conrecaw.dat
conrecaa.dat
conrecab.dat
REPLAY.ARF
"conrec" could either be(en) used for debug console logging, or just tied into the replay system.

Finally: Since there's no suffix in the strings in the exe (in rc2) I guess each track must have a bmp&btp&gfx&pinp file with the same ID (like "TRAIN01"), and the header is used by the game to identify what to do with each file (since it needs to find them all anyway).


moving on...

IMPORTANT: imghack works 100% fine in both games!!! I just forgot I was running it on a (intentionally) broken idx... BlushBlushBlush
Some interesting notes: the full game got the same demo spalsh image as the demo (as posted above). It does not contain those family pictures. But (like the demo) got a bunch of pictures which all seem to tile (maybe some unused menu backgrounds - or maybe used but I never noticed):

   
   
   
   

etc, etc, etc... you guys probably already found these already? I'm going to stop uploading random bmps now... Blush Btw: of course: the character anymations are stored as bmp files... and there's one small file looking like the psygnosis-video-background-wortex-kinda-thingy...


moving on...

Materials would make sense, at least for rc2 as it'd probably use less memory compared to having different textures for each car "paintjob". Or also the car textures used some kind of palette to support different colours with as little memory usage as possible (thus the bmp files might not tell the complete truth).

I'm a bit surprised only rc2 got textures stored as bmp, and rc1 doesn't. But I'm sure rc1 got textures, so they're probably stored in a BTP file and/or something easy to use on the ps1 hardware.


ehm.... moving on...

the coordinates could also be relative to the path of the road (as it's might not be stored as a 3D model, but as the original spline data - so the 3D gets built by the game upon loading)...

oh...

Quote:Interesting idea -- we could certainly pack files back into an IDX/IMG pair. I don't see anything which indicates that the files need to be compressed - packing them into an IMG uncompressed might work.
My thoughts exactly! (an idea would be to unpack the files in one directory and pack the files from another: that way there's no risk of overwriting and similar)

But one thing to keep in mind if this fails (the game doesn't accept it): remember the "additional data" field. I'm still theorizing that this contains a compressed string of the filename, so either make sure to save them on unpacking and insert them in the right order when repacking... But might be worth looking closer at what those arrays actually contains?
Try systemd. They said.
It'll be just as reliable as init. They said.
It'll be completely bug-free. They said.
Our monolithic windows-approach is far superior to the Unix-approach. They said.
Okay, so the codebase has grown gigantic and no one but our paid group of full-time developers who created it can maintain it and fix bugs... but it'll be fine. They said.
Okay, we'll shove it down your throat whether you like it or not. They said.

I guess it's finally time to look into GuixSD and/or devuan.

Code:
systemd-journald(195): Received SIGTERM.
systemd[1]: systemd-udevd.service has no holdoff time, scheduling restart.
systemd[1]: systemd-udevd.service failed to schedule restart job: final.target is queued, ignoring restart request for unit systemd-udevd.service
systemd[1]: Unit systemd-udevd.service entered failed state.
systemd[1]: systemd-journald.service has no holdoff time, scheduling restart.
systemd[1]: systemd-journald.service failed to schedule restart job: final.target is queued, ignoring restart request for unit systemd-journald.service
systemd[1]: Unit systemd-journald.service entered failed state.
Reply
#58
Pretty sure there are bitmaps of some members of the ATD/Psygnosis team and their families in RC2.

As for the cars ... I don't know how splines work, so I don't know how their model files would be organised. But at least the ones in Rollcage 1 (in the higher-res P4 mode) have actual 3D models (they seem to, anyway), and I'm sure the Vostok Reaper in stage 2 has a separate rear wing from the main body (I noticed on the other cars and the low-res rollcage 1 cars there are no obvious overlapping parts such as separate wings, so that may mean something).

If there are no actual z-co-ordinates in the cars though ... then how would we convert them once the format was understood, to use them in ReCaged? :/



... btw aren't there 3D model rippers out there? I've played a few other games where people have successfully ripped game models from video memory when in use (for example some cars from Trackmania, also the Camaro SS from Blur) ... would it be possible to use one of those?
96.5%
MORE
WUB WUB.
[Image: 54f5c31d9f2ce.gif]
Reply
#59
I didn't see any "additional data" in any of the archives. I'm sure there are Z coordinates - I just can't identify the format. Possibly a plane is defined, then a face is constructed out of 2d coordinates, but I haven't seen that.

I guess if the models are formatted for directx, then a ripper could pluck those out of memory. Just for my own satisfaction, I think it'd be more fun to reconstruct them from the original data.

But it's weird. I was staring at the following MODL block for coordinates until I noticed a really bizarre symmetry...

Code:
52 86 9a 47 65 42 a8 79  62 75 a8 49 56 42 87 9a
52 86 a9 47 65 42 98 7a  62 75 98 4a 56 42 87 a9
52 a6 89 47 65 42 9a 78  62 75 9a 48 56 42 a7 89
52 96 8a 47 65 42 a9 78  62 75 a9 48 56 42 97 8a
a8 79 24 65 84 9a 57 26  87 9a 24 56 74 a8 69 25
98 7a 24 65 84 a9 57 26  87 a9 24 56 74 98 6a 25
9a 78 24 65 a4 89 57 26  a7 89 24 56 74 9a 68 25
a9 78 24 65 94 8a 57 26  97 8a 24 56 74 a9 68 25

Byte 1 = 52, last byte = 25.
Byte 2 = 86, last byte - 1 = 68
Byte 3 = 9a, last byte - 2 = a9
...
etc

Huh? Why are they mirrored like that in groups of 4 bits?
Reply
#60
That is ... bizarre.

O.o

And considering that if they were supposed to denote mesh co-ordinates they would represent entirely different values ...


ATD. Trolling hackers and game researchers since 1999.



... to be honest, if these ARE the cars then ... it must have something to do with the mirroring of the car body (for the underside) ... could it potentially make more sense looking at it in binary rather than hex? still ... it's bizarre.
96.5%
MORE
WUB WUB.
[Image: 54f5c31d9f2ce.gif]
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)