User talk:Malvineous

From ModdingWiki
Jump to: navigation, search

Contents

Wolfenstein 3D -> Wolfenstein 3-D

I've corrected the infamous 3D tyop in the names of several Wolf3D-related pages; can you please delete the following ones?

Category:Wolfenstein 3D -> Superseded by Category:Wolfenstein 3-D
Image:Wolfenstein_3D.png -> Superseded by Image:Wolfenstein_3-D.png

Thanks :) --De Zeurkous (zeurkous@zeurcomp.nichten.info), Thu Nov 22 08:18:42 UTC 2007

Haha, you've certainly been busy. Don't forget that this wiki isn't meant to be an encyclopaedia of the games, its main purpose is documenting the file formats and editing tools that can be used with the games, as opposed to how the games behave without any mods, or what they might be called if you forget to change the title screen :-) -- Malvineous 11:14, 22 November 2007 (GMT)
Nah, I haven't forgotten. As we're reinventing the wheel for a semi-virgin wiki, the naming and something static like the cheats seemed like a good place to start :) --De Zeurkous (zeurkous@nichten.info), Thu Nov 22 12:20:04 UTC 2007

Jill of the Jungle palette

Hi, I'm currently working on a level viewer for Jill of the Jungle (maybe an editor later on). Some of the information I found here has been very useful, but there's one thing I'm a bit stuck on. On the SHA Format page it says:

Each array item contains 4 unsigned bytes, representing CGA, EGA and VGA, respectivley, and then a null value. [...] Each byte maps to the index of a colour in the palette. If there are no colours required, the tile set uses the default colours.

However, it doesn't say anywhere where the palette can be found. Is it stored in the EXE file? I hope you can help me on this :)

Regards, Spinal 13:00, 2 March 2008 (GMT)

Unfortunately I didn't write the JotJ SHA page, and I haven't yet had the time to figure this out. For Xargon I've taken the quick and dirty route and used a screenshot from within DOSBox as the source of the palette, until I can figure out where the palette is located. If you find this out, don't forget to update the page! :-) -- Malvineous 22:02, 2 March 2008 (GMT)
Hey Spinal, sorry, I wrote the SHA Format page, so that was probably my bad. I wasn't able to find the palette either. I assume it's in the .EXE, however I spent a fair bit of time manually mapping it using a Wombat tool (http://www.szevvy.com/node/3). I was also writing a level viewer (initally in XHTML which turned out to be too slow, so then I moved to Flash 9). I tried to email you my findings, but the email bounced. I'm not sure if they were 100% accurat, which is why I never added them to the documentation.
Hey Malvineous, it seems the Jill - DMA Format page has been removed. Do you have a log of what happened to it? I'm sure it existed at some point.
- Daniel 20:00, 5 March 2008
I don't ever remember seeing a DMA page - certainly there's nothing in the wiki logs about it being deleted or renamed. Maybe you started working on it but never got around to saving it? Or is it one of the Xargon pages that shares the same format as Jill? (by the way, you can type ~~~~ to automatically put in the signature in these messages.) -- Malvineous 11:28, 5 March 2008 (GMT)
Sorry, it must have been the stuff in the SHA Format page that I was thinking of. I may have added the link to the DMA Format page, and never expanded on it. - Daniel 02:46, 6 March 2008 (GMT)
Hi guys. Sorry for the mistake, I mixed up the authors of the SHA and level formats. I've written a level viewer in PHP the last week, by using static images instead of getting them from the actual files. This causes some problems for episode 2, which uses a different palette, but besides that it works great :) When everything is done I'll upload the maps to my server and the tile/object lists to this wiki.
@Daniel: strange that it bounced, I confirmed my address so it should be working fine... You can mail it to spinal -at- zanderz -dot- net. Also, I saw on your Wombat page that you "have a vague idea of how to do" Hocus Pocus. Could you share your findings on this wiki? I'd love to make maps, or even a level viewer/editor for that game :) -- Spinal 00:32, 8 March 2008 (GMT)
Okay, with help of Daniel who send me the palette I found it! I'll put my findings on Jill of the Jungle palette. -- Spinal 15:36, 13 March 2008 (GMT)

Halloween Harry/Alien Carnage

Hi Malvineous. Thanks for your edits on the GMF article! I notice you mentioned there exist versions of the game which don't require exploding a BNK to get at the game data. What does the directory structure look like for the version you have? I'm working on a map viewer (which will become a map editor at some point) and would like it to be able to work on whatever versions are out there. Thanks for any info. -Duckthing 04:41, 11 December 2010 (GMT)

Hi Duckthing - no worries, Halloween Harry has long been an interest of mine, but my map editor sadly needs a lot more work before I can begin reverse engineering more file formats so I'm glad you've made a start! AFAIK technically Halloween Harry has no compression, but for whatever reason (probably listed in the Apogee FAQ) they decided to swap episodes 1 and 3, compress the BNK file and then re-release it under the name Alien Carnage. You can download all available versions (including registered versions since the game was released as freeware in 2007) from RGB Classic Games. BTW not sure if you noticed but I also posted a couple of things on the GMF article's talk/discussion page. -- Malvineous 06:08, 11 December 2010 (GMT)
Thank you! Working with the uncompressed version will keep things less complicated. I did notice the GMF discussion you added, but haven't had a chance to really go through it yet. -- Duckthing 06:41, 11 December 2010 (GMT)
No worries. If you're running Linux or MacOSX you should be able to compile libgamearchive which will let you copy files in and out of the BNK files. This is a library so it's also possible to use it in your own program for accessing and editing the map files while they're still inside the BNK, for instance. (BTW the 'minor' tickbox should only be used when the edit does not affect the information on the page - e.g. fixing a typo or a broken URL. If you are changing the actual content on a page it is never a minor edit!) -- Malvineous 07:51, 11 December 2010 (GMT)


Dangerous Dave

Working on this, does anyone have any info on the formats? The EGA graphics are 84KB and external, but CGA and VGA graphics unrelated to them are in the 174KB executable, apparently uncompressed, I don't know how this is possible. I've found the levels and partially reverse engineered the format (The first 1000 bytes, a 100x10 array of tiles.) but each level is followed by ~280 bytes of variable and unknown data I assume is sprites. I have a list of internal files in the executable, looks like most of it is non-game code. Any help would be appreciated. -Endian? What are you on about? 06:03, 12 December 2010 (GMT)

Hmm, interesting. All I can suggest for the levels is - as you're probably already familiar with - changing the values in a hex editor then loading the game to see what happens. I would suspect that all the graphics would be in a similar format, so if there are any headers or structures used in the EGA graphics files perhaps they're duplicated for CGA/VGA? Also John Romero seems pretty accessible, perhaps you could ask him directly? Failing that, randomly writing data into the .exe until the images change could be used as a last resort! -- Malvineous 12:09, 12 December 2010 (GMT)
Ha, that was easier than I expected - uncompressed VGA data is easy to find with a good hex editor ;-) This looks like it -- Malvineous 12:17, 12 December 2010 (GMT)
Ok that was only the menu graphics. At offset 0xC629 there's some sort of offset table which looks very similar to the contents of EGADAVE.DAV but there are extra bytes dotted all over the place - perhaps it's RLE encoded? Actually just before that there's the number 0x6CAA. If you go a bit less than 0x6CAA bytes after this you end up with another table, which to me suggests that 0x6CAA is the decompressed size of that first table. -- Malvineous 13:01, 12 December 2010 (GMT)
If I remember it correctly, the VGA sprites and tiles are RLE compressed and it's not too hard to decompress them. The positions of the enemies in the levels on the other hand are still a mystery to me. Calvero 20:43, 12 December 2010 (GMT)
Looking at the levels, which directly follow the VGA palette, they seem to contain 256 bytes of header data, then the 100x10 tiles, then eight bytes of lead-out data. Then the next level's 256 bytes of header, 100x10 tiles, then eight bytes of lead-out. Although I say "level", the first "level" seems to contain both level 1 and 2, and this seems to be the way it works in the game - in some levels you can see through to others. I'm not sure what the 256 bytes of header data are for, but some levels have FF FF 00 00 repeated which seems to indicate two uint16 fields which are blanked out for those levels. -- Malvineous 13:15, 13 December 2010 (GMT)
First up, levels; where does level 1 start? It's possible I'm reading the start of a level as the previous level's end, I looked for the start of tile data, which I assumed, like Keen 1, would be the level start.
Next, palette; I'm assuming, as you said, it is located just before the level data?
There is VGA and CGA graphics in the executable, plus headers, but the bulk of graphics for CGA and VGA I haven't been able to locate. If the data is RLE compressed I should think it would use either Keen 1-3 fullscreen or Jazz Jackrabbit tile RLE, both of which I know well. I'll look into both of these options, cheers! -Endian? What are you on about? 12:03, 20 December 2010 (GMT)
I've found the VGA and CGA data for the menu graphics. It looks like the CGA data is stored in a series of 1-bit-per-pixel (monochrome) images. Or it could be EGA data with the planes split out (e.g. red plane for all images, then green plane for all images, etc.) I think I found three planes which means it's probably EGA, as CGA would have a max of two planes. I've also found the font graphics, this looks like 4bpp/16 colour EGA data. Haven't seen level graphics yet. I've successfully modded the levels with a hex editor (putting the jetpack everywhere) so now I've finally looked at all the levels! The creatures are definitely not stored in the 100x10 tile data. Putting random bytes in there revealed that the values are indices into the image files, because if you put the value in for fire it will animate, and the following three or so values show up as still frames from the fire animation.
The VGA palette starts at 0x26B0A (I updated the main DDave page with this) + 768 bytes leads straight onto the start of level 1 at 0x26E0A. So at 0x26E0A there are 256 bytes of data, then 100x10 tiles, then 24 bytes of footer data. Some of this data (perhaps footer data) might be the level start coordinates, because Dave doesn't always start the level at the same place (e.g. the warp level when you climb the tree on level 5 and jump off the edge of the screen.) -- Malvineous 12:24, 20 December 2010 (GMT)
I think I've found all the files so far, I've updated Dangerous Dave with the offsets of the files, including what appears to be CGA and VGA tiles. I'm not sure what sort of format they're in though, it looks like they might be compressed (and so the offsets in that list might be off by ~4, as I may have cut off the decompressed-size field.) I've also updated the map format page, I think it's pretty much fully reverse engineered now. -- Malvineous 05:13, 21 December 2010 (GMT)


Noahs Ark 3D and IMFs

Been poking around Noah's Ark 3D, an adaption of the Wolfenstein game and found a few interesting things which I'm hoping to confirm.

First, the game uses MID files, not IMF files for music, second, the MIDI files have an extra word at the start of the file giving the file length. Third, the code uses the first word of the midi file as the length of data to read from the file and put into memory to play. After poking around a bit in Wolfenstein and Keen I believe this is the same with IMF files, that is, ALL IMF files are type 0 as it were and the type 1s are read just like type 0s by the games (The first word is read as the amount of IMF data to copy into memory to play, this is then read as type 0.) I'm not quite sure what this does for the two types since type 1 is would essentially be a type 0 with a header and footer that are part of the AUDIO.xxx format, much like PC\adlib sounds can have the huffman lengths at the start. Are there any games that use 'individual' type 1 IMFs (Even if included as part of a group file. All I've seen are games like cosmo, where non-AUDIO IMFs are type 0.)

Should there be a Noah's Ark 3D page and should we add the midi note to the AUDIO format page? It seems that the format can hold any type of music file the game can read, not just IMFs. -- Levellass

Yes it is known that the type-1 header might really be part of the AUDIO.xxx format but alas there were many type-1 files floating around the place (incorrectly extracted, you could argue) before this was realised, so the format variant is here to stay. It does have some advantages though (like tagging files with the song title) but I'm not sure whether anyone has figured out definitively whether the header (and footer, in the case of the Wolf3D files) belongs to the IMF or the AUDIO file. I guess you'd have to browse the game source code and see how the game uses the data to know for sure.
As far as the MIDI goes, I believe the AUDIO.xxx file is just a container file like any other, capable of supporting any data at all. It's up to the game to decide how to use it. If anything this makes me think it would fit better if the AUDIO.xxx article was merely documenting the structure, with links to actual audio formats like PC SFX, Adlib SFX, IMF and MIDI and notes about which games make use of which formats.
Oh and yes, by all means create a page for the new game. -- Malvineous 08:41, 3 February 2011 (GMT)

Sound Files category

I don’t know why there’s a Sound Files category and also an Audio Files category... it seems redundant. I left those categories the way they are though.

Also, the File format data types page needs some signed ints, but I didn’t know what naming convention you wanted to use. I described something as an INT16LE on BMC Format. Yellowantphil 20:12, 11 September 2011 (GMT)

Not sure about the Sound vs Audio - I use the term 'audio' to mean both sound and music, but you're right, if there are separate sound and music categories we don't really need an audio one as well. Feel free to update. INT16LE is perfectly fine too! I added a note to the data types page. -- Malvineous 22:30, 11 September 2011 (GMT)

GamePage template

Should the GamePage template add the page to its own category? It seems a little odd that Wacky Wheels is not in the Wacky Wheels category. Yellowantphil 04:51, 16 September 2011 (GMT)

I decided against this because there is a link to the game's page in the category intro at the top of the page. It seemed unnecessary having another link in amongst all the other pages. This was also because the game page was really only meant to be a summary, there wasn't supposed to be a huge amount of detail on it, only links to other pages with the detail (which then would appear in the category list.) I would imagine that, eventually, Wacky Wheels would be tweaked to move a lot of the content onto subpages. -- Malvineous 12:58, 16 September 2011 (GMT)

Scope of the wiki

I don’t know how extensive you want the information to be on ModdingWiki... I added a few lists of audio and graphics files a while ago, and there will probably be other information that I’ll find out that’s potentially helpful for level editing but not directly related to it. I can move some information to my website if it starts to become out of scope for your wiki. I also sometimes end up documenting everything imaginable... there’s some minutiae on my website and possibly on your wiki that I ought to go through and delete. Yellowantphil 05:28, 10 October 2011 (GMT)

Hmm, that's a difficult one - I'm always in favour of documenting more rather than less. Generally speaking if it's related to a game and it would help either a programmer writing a utility or a someone trying to change a game manually then it should be documented. About the only thing that comes to mind that's over documenting is when some small calculation is expressed in a couple of different programming languages, but I've left that in so people can just copy it rather than trying to figure it out from the text. But the Wacky Wheels page is probably the gold standard for what all wiki pages should look like :-) Do you have anything in particular you're unsure of whether it would fit here? -- Malvineous 10:07, 10 October 2011 (GMT)
I was mainly thinking of the list of VOC files on Wacky Wheels Music and Sound Effects and the list of *.sp files on Wacky Wheels Graphics Formats. I have an expanded list of the *.sp files on my computer but it isn’t finished yet. I guess there isn’t all that much more Wacky Wheels information to be added to this wiki though. There is still some modding information on my website that ought to be moved over here, so that would take up another page or two. I’ve been lazy about doing Wacky Wheels stuff lately, but I might find some time for it this weekend.
By the way, I guess that guy from Cascadia Games emailed you. It’s pretty interesting that WW might become an iPhone app. He told me that he was going to be using his own game engine, which sounds a lot easier than trying to get a hold of the WW source code and porting it. —Yellowantphil 16:46, 15 October 2011 (GMT)
I was going to say the list of VOCs might be overkill, but then the list of .sp files might be useful. To be honest, it's the sort of thing that you could probably omit if you were feeling lazy, but likewise I don't mind at all if you choose to include it, so since it's already there I'm happy to keep it.
Yes I did get an e-mail from Cascadia, I was going to pass along your details but it sounds like you're already aware of it! Using their own engine might make it a bit smoother than the original, as the jerkiness of turning is my only criticism of the game. -- Malvineous 00:14, 16 October 2011 (GMT)

Wacky Wheels

Basically all of the WW modding information from my website is here now. I moved one page when I realized it should probably be capitalized to match the rest of the pages on this site... you can delete the redirect at Wacky Wheels high score files if you want to.

Now, I need to remove most of the modding information from my website and refer people here. Then we’ll have reached the glorious future where all WW modding information is in one place. I’m going to keep those two text files of notes on my website though—the information in them is disorganized and I think not 100% accurate, but they might have some information that isn’t here yet.

By the way, how’s Camoto going? I’m planning to use it to make a new WW level, but I won’t have time for it for a few more months. —Yellowantphil

Sounds good! Thanks for all the effort you've put in by moving it across. I think Wacky Wheels is now the most completely documented game on the wiki! Also can't hurt leaving your own info up - sometimes it's nice to go back to the original source if something is unclear. Camoto's going well, but unfortunately I haven't had much time to work on it over the last few weeks. You probably won't be able to make much of a level until I add in the ability to select a tile from the tileset, but that's in progress and hopefully will be ready by the time you are! Keep me posted when you do start your level(s?) -- Malvineous 12:22, 2 February 2012 (GMT)
Well, as I was reading some of the information on my website, I noticed that it isn’t written very well. I wrote those pages back when I had very little experience programming. Anyway, I’m planning to redesign my website soon, and this will save me from having to rewrite a few of those pages.
The tile editor in Camoto as it is now is still certainly useful—I can add new tile types to a level using a binary editor and then move them around in Camoto. I think that it shouldn’t be too hard to make a new WW level using the Gimp and Camoto plus some binary editing. I recall having some problems with the route editor for the computer players, but I didn’t look into it at the time—I’ll let you know when I’m working with Camoto again, and I’ll try to come up with some useful bug reports or fixes if I run into problems. —Yellowantphil 14:06, 2 February 2012 (GMT)

Catacomb

Hey Malvineous, do you know anyone who has properly read the Inverse Sound Frequency file format and got the sound playing? I'm struggling with some fine details in my game. Sounds play near what they should sound like, but the sound quality is all crackly and some sounds play totally incorrect. I followed a basic code sample by Anders Gavare. Does your tool support this? Interested in helping me figure this out? My current code is available at catacomb_sound.c - Eros 11:57, 5 May 2012 (GMT)

Should this be moved to my talk page? - Eros 11:59, 5 May 2012 (GMT)
Probably best to keep it on my talk page if you want me to respond in a timely manner :-) I based my old utility off Anders' one too, but it's been a long time since I looked at the code. My latest utility doesn't support sound effects yet. I know Levellass has written a few utilities to play and edit those sound files, so I think your best bet would probably be to post over at the Keen:Modding forum. Do note that PC Speaker effects do sound crackly at the best of times, though! Also make sure you've got the right audio format (8-bit vs 16-bit, signed vs unsigned) - I remember some inconsistencies there causing some very distorted results for me. I love the name 'Cataclone' - does your code compile under Linux? -- Malvineous 13:21, 5 May 2012 (GMT)
I currently compile the code using Code::Blocks with GCC 4.6 -std=gnu99. It *should* compile under Linux. But I haven't tested that out yet. Catacomb sounds also have flags attached to each one, It's not exactly the same specification as what it says @ the Inverse Sound Frequency format page. Perhaps the flags would make a difference to the sounds? I have the sound setup @ sound_manager.c in the sound_manager_init() method. I use AUDIO_S16 (signed 16-bit) @ 22050 Hz with 2 channels. I have not added support for the priority of the sounds yet, I plan on doing that after I get them playing properly.
I found some information on the ROTT sound format here: _rt_soun.h. This format should be similar to Catacomb as ROTT was developed by Apogee using the Doom engine. Here are the flags for the sounds that they define:
#define SD_OVERWRITE     0x01
#define SD_WRITE         0x02
#define SD_LOOP          0x04
#define SD_PITCHSHIFTOFF 0x08
#define SD_PLAYONCE      0x10
There are also many other sound files for ROTT: [1], [2], [3], [4], [5]
I tried it last night and I was able to get it to compile (after a few changes, like using '/' instead of '\' in a couple of #includes) but all I got was a black window and a beep sound, then nothing. How far advanced is the project? Should I expect more than that? I would expect small variations in the file formats between games, but I would be surprised if the core sound data has changed over time. -- Malvineous 02:38, 6 May 2012 (GMT)
On Windows, you can run around the levels, collide with walls, collect items, etc... I still need to implement monsters, AI and power shots. However, that beep means that the sounds playing. (see line 71 in main.c: catacomb_sounds_play("foundsound");). I just committed the catacomb_data.h file. Update it accordingly, you should now see much more than a black screen.
Oh wow, that works really well now! I see what you mean by the sounds. You might have to output the PCM data to a .wav/.raw file and look at it in a sound editor to see what's going on. It sounds like there might be wrapping or something going on. Also some sounds (like being blocked by a door) play multiple times over the top of themselves. I guess this is what you meant by priority not being implemented (although maybe you wouldn't need to handle priority if you can play multiple sounds at the same time, unlike the real PC Speaker.) One suggestion - if you do decide to support Linux, abstract the calls that open files so that they search for filenames instead - that way you don't have to rename all the Catacomb files to be uppercase, since Linux has a case-sensitive filesystem and most filenames are usually all lowercase. -- Malvineous 03:42, 6 May 2012 (GMT)
I have exported the raw data to a file, then imported the raw data into Audacity using various settings. All of them sound like they do in the game, crackly and sometimes distorted. I really think its some sort of post FX used by the flags. As for files, I'll code some sort of SafeFileOpen, SafeFileClose functions like the id codebase that open files regardless of case when i get around to implementing the Linux version. - Eros 03:54, 6 May 2012 (GMT)
If you can e-mail me one of the files (preferably a 'quiet' one that's not supposed to be crackly) I can take a look if you like - malvineous@shikadi.net -- Malvineous 03:57, 6 May 2012 (GMT)

Merge

Is there a way to tag two pages such that it is clear that they should be merged? For example, Crystal Caves Tileset Format describes the same format as Duke 1 Tileset Graphics.Frenkel (talk) 21:00, 15 July 2013 (GMT)

You can mention it on the talk page for one of the articles. Any suggestions as to what we should call the merged page? -- Malvineous (talk) 03:09, 20 July 2013 (GMT)
Dark Ages is the first game that got released that uses this format, so Dark Ages Tileset Format could be the name, like all those formats that are named after Commander Keen 1-3.
Or we name it after Duke Nukem 1, because that game is probably more popular than Dark Ages, Crystal Caves and Secret Agent, like Commander Keen 1-3 Level format, although Slordax used it before Commander Keen 1-3 did.Frenkel (talk) 19:13, 20 July 2013 (GMT)
Yes I was thinking along the same lines, naming it after the first game that used the format. But then the release date doesn't necessarily indicate which game "invented" the format, if one game took longer to develop and was released late. I was wondering whether there is a common thread amongst all these games, such as the same programmer or company we could use instead. In many ways I would prefer a name like "Replogle tileset format" or "Apogee EGA tileset format". What do you think? -- Malvineous (talk) 23:36, 20 July 2013 (GMT)
I've read the | Apogee Legacy interview with Peder Jungck again today. He wrote the ProGraphx Toolbox.
DN1.EXE contains the string Version 1.0 EGA/VGAProGraphx EGA/VGA Toolbox,
CC1.EXE contains the string Version 1.5 320x200 PAN EGA/VGAProGraphx EGA/VGA Toolbox,
SAM1.EXE contains the string ProGraphx EGA/VGA Toolbox Version 2.0 320x200 EGA/VGA Copyright 1991 by Peder Jungck and
DA3.EXE contains the string Version 1.0 EGA/VGAProGraphx EGA/VGA Toolbox (DA1.EXE and DA2.exe contain gibberish).
So I would suggest ProGraphx Toolbox tileset format. Peder also wrote a book about the toolbox called Graphics Programming & Animation: Ultra-Fast Assembly Routines for EGA/VGA Graphics Animation. Maybe that book has a better name for the file format. Frenkel (talk) 11:03, 21 July 2013 (GMT)
So we know of three different versions of the ProGraphx Toolbox. Dark Ages and Duke Nukem 1 use version 1.0. Each tileset is 8064 bytes long and is in a separate file. Crystal Caves uses version 1.5 and each tileset is 8003 bytes long, but they are all in the same file. Secret Agent uses version 2.0 Each tileset is again 8064 bytes long, they are all in the same file and the file is encrypted. Frenkel (talk) 17:00, 28 July 2013 (GMT)
Thanks for figuring all that out. I've merged the pages and changed the name to ProGraphx Toolbox tileset format as suggested. Please feel free to correct anything I have missed. -- Malvineous (talk) 02:40, 4 August 2013 (GMT)