|
Post by Peer on Apr 24, 2023 12:57:31 GMT -5
|
|
|
Post by VECTREXER on Apr 24, 2023 13:42:04 GMT -5
|
|
|
Post by VectorX on Apr 24, 2023 14:04:57 GMT -5
I might have dug up some sort of treasure that apparently went unnoticed for 40 years: Holy vector treasures Batman!
|
|
|
Post by Chainsaw on Apr 24, 2023 15:54:06 GMT -5
That's awesome. Just awesome!!! It is somehow crazy, that you found this bug 40 years later. And it is interesting, that the programmer(s) already thought about players that reach 20 trophies and included the trophy room 2, but nobody tested the game so far to find this bug before releasing the cartridge? Somehow strange... Or they found it in a phase, when it was too late to fix it, and the cartridge was release with the bug. And consider... With a 8K cartridge, they could have created 40 or more different "amazing creatures" instead only 20 different ones. Also thanks for the code analysis and source code with comments. Now I stand there with one laughing and one crying eye. (I don't know if this eloquent also works in English...). Because on the one hand, it is enormously exciting to reach trophy room 2 with this new bugfixed version. On the other hand, in the original, the hunt for the trophies above number 20 is also exciting, even if (or because exactly this point) they only consist of "scrap data". But I love the patched version already a lot. Thanks so much Peer! But also, I found very small "bugs" or some very small "strange behaviors" after capturing trophy 20 in the bugfixed version. But in my opinion, no further patching / bugfixing is necessary, because it is working anyway good. But I didn't test it a lot, it still can be different as I describe. After catching trophy 20, the game continues. Then: A) The 21st trophy (that looks like trophy 1) appears with very fast speed, similar how trophy 20 was appearing / flying. But if you don't catch it and you collide with an enemy, then trophy 21 appears with very low speed, like at the beginning of the game. Also after catching the 21st trophy, in every case, trophy 22 etc. are flying with very low speed again, like at the beginning at the game. (So the game is much easier again after number 21, because the trophies are flying much slower again - but the rest of the game remains very fast.) B) During my first game, I reached trophy 20 with 2 lifes left, but then, I was not able to catch the 21st, because I was always colliding with enemies. After the end screen, not the regular trophy screen with 20 trophies appeared, but already the trophy room 2, but without any trophies. So I'm not sure, if the game is already "switching" to trophy room 2 after leaving the regular trophy room after showing all 20 regular trophies, or if this happens after 1) capturing trophy 21 successfully AND/OR ? 2) after loosing a life before capturing trophy 21... That would explain, why trophy 21 is first flying with high speed, and after loosing a life, it is flying with low speed. Or why after dying / not capturing the 21st trophy an empty trophy room 2 is appearing. Sorry Peer, this is very difficult to explain in English, but if it went wrong, I can write you the same story in German by mail... But as I said: Not critical, only the switching / timing from trophy room 1 to trophy room 2 is a bit glitchy. And again: THANK YOU for this great news and the fixed version... Picture 1: Trophy room 2 !!! Yeahhh Picture 2: Empty trophy room 2 (All 20 regular trophies were shown in the trophy room, then I lost my last 2 lifes without capturing trophy 21...
|
|
|
Post by Peer on Apr 25, 2023 1:20:03 GMT -5
Holy vector treasures Batman! LOL, thank you, I feel honored
|
|
|
Post by Peer on Apr 25, 2023 2:39:23 GMT -5
... With a 8K cartridge, they could have created 40 or more different "amazing creatures" instead only 20 different ones. Web Warp is 8K already And each creature needs two vectors lists, one for each animation frame. So there is already a lot of data in those 8K. There are also some patch bytes, and one hidden "advertisement" message (is this commonly known?). I have not yet counted those bytes, so they might have fitted in 2 or maybe 3 more additional creatures. However, placing 20 of them on the screen at the same time, is or was the limiting factor, I think. You are welcome. Let me know, if you have any questions I might be able to answer. Yes, all those are consequences of the trophy room 2 now being active. The code, which controls this, is IMHO unfortunately placed, and that is why this happens. My guess is that this whole part was indeed not tested, likely due to timing constraints regarding the release of the game.
Many Cheers, Peer
|
|
|
Post by Chainsaw on Apr 25, 2023 14:56:08 GMT -5
Yes... Everything is absolut interesting, also the advertisement in the code. But again: Finding the trophy room 2 today, is similar like, when researchers find novadays new rooms in the Cheops pyramid. :-) Same feeling like Christmas 1983 (or 1984 ??) when I got my Vectrex as a present. I remember, I got it when it was already at the end of "selling lifetime" and it was price reduced, and some month later, it was more and more difficult to get any games on the market. So it could be 1984??? Have it anywhere in a family photo album, maybe the date is printed on the backside of the photo... Also I remember. In Switzerland the Vectrex was often sold for Swiss Francs 499 or more at the beginning. Later it was reduced to 250, and when I finally got it, the price was 199 Swiss Francs. (Most of the games were around 39 or 49 Swiss Francs, sometimes more or less, also depending of the games dealer or if it was a brand new or older game.)
And yes... About testing... It is interesting, how good this worked anyway in the past. There are some bugs and glitches in many games from the 80ies and 90ies that were published on cartridges or disks, but everything worked and was playable. Patching / Fixing was just not possible for the producers. I don't know, how many beta testers and quality assurance people are involved today for modern PC or console games, before a game is released. But what are you doing normally before you play a new game? Download a patch, or even a day 1 patch :-) Also I did already some beta testing the last years, for games or also for a website for easy creating webshops. And it is crazy. I found sooo many bugs, and after fixing something, other things were broken again. And then, after the release, users or people did crazy things, that I never tested, even if I tried to do everything weird. Best thing: Game was released, and in a forums, a player who ran into a bug just asked "Did anybody test this?" LOL.
First patched game that I know was some kind of "hardware patch": The Game and Watch game Judge. In the first version, there was a bug in the scoring, if you played a two player game. (It was possible to play this game with two players.) Later the released it again, and fixed the score problem, and the bugfixed game had a new housing color, to see the difference which version you have.
But... Why am I yapping (I mean chatter around) all over the forum? I hope no one fell asleep, but well, sometimes I'm in the mood to tell stories... I think at least the Vectrex stories are interesting here for everybody :-)
|
|
|
Post by rayxamber on May 3, 2023 12:34:05 GMT -5
A small remark that I noticed in Web wars/warp is the appearance of the exit "door" (the square) which takes place only if the player destroys an enemy. If he doesn't, it doesn't appear. Is this something that is planned in the code or something that can come from a limitation of the number of elements displayed (an enemy sprite must disappear for the square to be displayed)?
|
|
|
Post by Peer on May 3, 2023 13:54:37 GMT -5
A small remark that I noticed in Web wars/warp is the appearance of the exit "door" (the square) which takes place only if the player destroys an enemy. If he doesn't, it doesn't appear. Is this something that is planned in the code or something that can come from a limitation of the number of elements displayed (an enemy sprite must disappear for the square to be displayed)?
your observation is correct. And your explanation is also correct. The enemies (the mine shaped guardians) and the door are stored in the same object list. And the size of this list is limited to 5 (or was it 6?) entries. For a new object to be spawned, there must be a free slot in the object list. If all slots are occupied, then one of the existing objects must be destroyed first, so that its slot is emptied.
If all slots are occupied by enemies (maximum number of enemies on the screen), then the door cannot appear. But it will, as soon as you shoot one of the enemies.
Many Cheers, Peer
|
|
|
Post by vectrexmad on May 12, 2023 11:27:25 GMT -5
Hi Peer, Yes, digital archaeology can be quite interesting. Your research reminds me of the time when I investigated this but on a more rudimentary level just using an editor capable of presenting hex and ASCII. I also looked a WebWars(not WebWarp) and found some interesting text not normally seen. See an original excerpt taken from my Vectrex.co.uk website 6th June 2013 newsAgain like the previous games I examined authored by programmer William Hawkins, the Web Wars game shows the author names (three of them). This text is visible when looking at the binary. To get this text to display in the game you need to press a combination of buttons (hold buttons 1, 2, and 4) before the title screen and before the music finishes playing. That text can be seen in the hex editor too. But look below at the text (see last column) I found at the end of the Web Wars ROM binary as shown in the TextPad editor. It looks like some kind of an advertisement: www.vectrex.co.uk/img/webwars%20txt.JPGI wonder when or if this message ever gets shown in the game? Otherwise what's the point of putting that message there? Very strange indeed...
|
|
|
Post by vectrexmad on May 12, 2023 11:34:51 GMT -5
|
|
|
Post by vectrexmad on May 12, 2023 11:37:41 GMT -5
struggling to embed the images into proboards - unless it's a browser issue? that's why I included the direct links to the images on my website.
|
|
|
Post by VectorX on May 12, 2023 12:52:39 GMT -5
^No, it's a lack of space issue. All Proboards forums have a specified amount of images that can be hosted for free initially unless you buy more space. This forum became maxed out for free hosting several years ago.
|
|
|
Post by Peer on May 13, 2023 3:24:32 GMT -5
... and look at the text I found in the Ripoff binary! ...
thanks a lot for adding this here. I knew about those texts in Web Warp and Rip Off, because I had already read your respective posts of the past. That is why I deemed the texts to be common knowledge and did not bother to mention them.
There is no way to display those texts on the screen while the games are running. The best indicator for this is that the strings are way too long, and that they do not contain (or end with) any string-terminator bytes (0x80 on the Vectrex). This means that the texts cannot be displayed by means of the BIOS Print_Str() routines. And I can confirm that there are no other custom string printing routines in the code.
Why the programmers added those texts? Well, because they could From personal experience I say that most programmers share a certain type of humor (present company included). And they love secrets and puzzles. Programming, after all, IS constantly solving puzzles. And in those days is was bad company-practice that programmers were not credited for their work. So I think that adding Easter Eggs and hiding texts in the binaries was sort of their way of getting back at the system.
The ROM chips on the cartridge-PCBs were either of 4K, 8K or 12K size (limitations of digital technology: there are no such things like 1.234K ROM chips etc.). That size was the maximum number of bytes the game code could use. But in most cases the code did not use all of those ROM bytes. There are usually some leftover bytes at the end of each cartridge. In many cases those are simply filled with zeros (there must be some value specified for those cells, as there is also no such thing as an empty ROM cell). But that is up the programmer. So filling that space with any other type of unused data was always an option.
Sometimes, it also makes sense to insert some unused padding bytes right in the middle of the code. For example, in order to align subsequent data to specific ROM pages or ROM addresses. Those padding bytes are also great candidates for inserting hidden texts.
What I find much more interesting is the text which can be found inside the Heads Up cartridge: "Drive Track Sector DMA address \x00Read ", see fourth paragraph of my analysis of the Heads Up code. This is certainly no programmer's humor, and also no advertising.
Also worth noting: In Bedlam, the programmer took the effort to cypher-code his name inside the ROM data, so that it cannot be (easily) read or detected by simply using a hex editor which shows ascii characters, see my analysis of Bedlam.
Many Cheers, Peer
|
|