Thomas Posted July 31, 2010 Share Posted July 31, 2010 Hi guys... I am new here and I am working on an original 2600 homebrew. (I will post more about that once it gets closer to being done. I am a writer, not a programmer!) I am wondering if anyone anywhere has the hangman editor, or if it is history? I have searched as well as I can for it, but nothing turns up. Bummer. I wanted to make a cart. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 2, 2010 Share Posted August 2, 2010 The wayback machine can pull it up...so you could probably save the script from there. Main page Editor Original NTSC word list Failing that, you could disassemble the ROM and replace the words there. The word list runs from $F800 to $FFF7 (4 bytes each word). The pointers for letters are all mixed up since the 4 bytes hold 6 pointers, but you can make editing easy by defining each letter as a binary value (%00000 = A, %11001 = Z, %11010 = blank space). Then a 4-byte group becomes... .byte <(letter1<<2|letter2>>3) .byte <(letter2<<5|letter3) .byte <(letter4<<2|letter5>>3) .byte <(letter5<<5|letter6) Example word = ABOUT: .byte <(A<<2|B>>3) ; AB .byte <(B<<5|O) ; BO .byte <(U<<2|T>>3) ; UT .byte <(T<<5|e) ; T(space) 2 Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 2, 2010 Author Share Posted August 2, 2010 (edited) Thank yew very much, Nukey. I searched the wayback but I was unable to find it. Good job! I had also been thinking about going into the binary like yew had suggested. Thanks for making that easier as well. Now I don't have to look all over the code to change words. EDIT: Wayback version does not appear to be working? Edited August 3, 2010 by Thomas Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 3, 2010 Share Posted August 3, 2010 Should be possible to hack the game to allow 8-letter words (which simplifies character mapping, split into the nybbles of 4 bytes with a 5th holding the low bit of each). There are only 40 pixels across the screen, but those can be seperated using players & missiles colored the same as the background to keep the 5x5 font. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 3, 2010 Share Posted August 3, 2010 EDIT: Wayback version does not appear to be working? You need to save the page then open it with a text editor to find where it was getting it's data from...then use wayback to try to save that file or data locally on your HD. Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 3, 2010 Author Share Posted August 3, 2010 Should be possible to hack the game to allow 8-letter words (which simplifies character mapping, split into the nybbles of 4 bytes with a 5th holding the low bit of each). There are only 40 pixels across the screen, but those can be seperated using players & missiles colored the same as the background to keep the 5x5 font. I'll let someone else do that. Like I said, I am a writer by trade, not a programmer. I am having enough problems trying to get the very simple homebrew I am working on going! Meanwhile, I am building a word database for a Hangman mod. I do like the idea of eight letters. That would the game a bit mroe of a challenge? Maybe someone here will work on that? Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 3, 2010 Author Share Posted August 3, 2010 You need to save the page then open it with a text editor to find where it was getting it's data from...then use wayback to try to save that file or data locally on your HD. That first part I can do. I am not sure how I would go about the second? I have had very little experience with the Wayback. One of these days I will have to check it out to see if any of my older published writings are still there somewhere. Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 3, 2010 Author Share Posted August 3, 2010 K... I got my word list together and downloaded DISTELLA and DASM to make my custom Hangman cart. I put everything I would need all together on a memory card and went to program. BUT... When I went to decompile the Hangman.bin with Distella, I got a notice saying it would NOT run with my 64bit computer! ARGH! Is there a disassembler I can use to get around this, or is there a switch on Distella that I can run it on a 64bit machine? I am running Windows 7. Thomas Quote Link to comment Share on other sites More sharing options...
jwierer Posted August 4, 2010 Share Posted August 4, 2010 K... I got my word list together and downloaded DISTELLA and DASM to make my custom Hangman cart. I put everything I would need all together on a memory card and went to program. BUT... When I went to decompile the Hangman.bin with Distella, I got a notice saying it would NOT run with my 64bit computer! ARGH! Is there a disassembler I can use to get around this, or is there a switch on Distella that I can run it on a 64bit machine? I am running Windows 7. Thomas Depending on the edition of Windows 7 you are using you could use Windows XP mode, basically it runs XP in a virtual machine http://www.microsoft.com/windows/windows-7/features/windows-xp-mode.aspx. If you have an XP DVD you could always run it in a virtual machine without this. -Jeff Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 4, 2010 Author Share Posted August 4, 2010 Depending on the edition of Windows 7 you are using you could use Windows XP mode, basically it runs XP in a virtual machine http://www.microsoft.com/windows/windows-7/features/windows-xp-mode.aspx. If you have an XP DVD you could always run it in a virtual machine without this. -Jeff A good thought, but alas I don't think I have the right Windows 7 version? Is there an ubuntu disassembler anywhere? I have a Linux system as well. Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 4, 2010 Author Share Posted August 4, 2010 The Stella site says it has a disassembler in it? How do I access it? I looked in the OPTIONS and CONFIG and whatnow and I couldn't find it? Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 4, 2010 Share Posted August 4, 2010 It's in the debugger window (i.e. to view a running program). Not so good for generating a disassembly listing I've attached an incomplete one below. Oddities in the program: * The word list begins at $F800 (the 2nd 2k of romspace). This leads to it being cut short since the RESET and BRK vectors occupy the last 4 bytes. However, the game also sets an NMI vector...which isn't used by the 2600 hardware. If that vector wasn't used, the wordlist could have been increased by an additional word. Also... If the wordlist had occupied the FIRST 2k of romspace, it wouldn't have been necessary to cut the list short at all. The original program ends 9 bytes shy of the page break...enough space for all the vectors. * Horizontal motion registers are cleared twice via stores to HMCLR, yet no sprites are used in the game. Possible that they were at one time?? * NTSC and PAL contain a few different words between them (due to different spelling). However, a couple of words repeat in BOTH versions. Hangman.zip Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 4, 2010 Author Share Posted August 4, 2010 Thank yew. I gave it a quick once over before bed. Second and fifth letters repeat and lower case "e" for space. I get that. Nutball way to do it, but what do I know? But then I noticed after RAISE, the words changed to X's? ;RADAR .byte <(R<<2|A>>3) ; $FB48 .byte <(A<<5|D) ; $FB49 .byte <(A<<2|R>>3) ; $FB4A .byte <(R<<5|e) ; $FB4B ;RAIDER .byte <(R<<2|A>>3) ; $FB4C .byte <(A<<5|I) ; $FB4D .byte <(D<<2|E>>3) ; $FB4E .byte <(E<<5|R) ; $FB4F ;RAISE .byte <(R<<2|A>>3) ; $FB50 .byte <(A<<5|I) ; $FB51 .byte <(S<<2|E>>3) ; $FB52 .byte <(E<<5|e) ; $FB53 ;READY .byte $44 ; | X X | $FB54 .byte $80 ; |X | $FB55 .byte $0F ; | XXXX| $FB56 .byte $1A ; | XX X | $FB57 ;REASON .byte $44 ; | X X | $FB58 .byte $80 ; |X | $FB59 .byte $49 ; | X X X| $FB5A .byte $CD ; |XX XX X| $FB5B ;RETIRE .byte $44 ; | X X | $FB5C .byte $93 ; |X X XX| $FB5D .byte $22 ; | X X | $FB5E .byte $24 ; | X X | $FB5F Not sure how to interpret this? ACK! Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 4, 2010 Share Posted August 4, 2010 I gave it a quick once over before bed. Second and fifth letters repeat and lower case "e" for space. I get that. Nutball way to do it, but what do I know? It makes perfect sense if you look at what those data lines are doing. There are only room for 8 "bits" in a data byte. The first data line stores all 5 bits for the first letter, and two bits for the second letter. The other three bits for the second letter are stored on the next data line with the 3rd letter's 5 bits. That leaves one bit left over...the high bit from the first data line remains unused. This 2-byte pattern is used throughout the game: .byte -1111122 .byte 22233333 BTW I only used a lowercase "e" (for "end") to keep the data lines looking nice. Using a full word like "end", "space", or "delimiter" makes the tables look too crooked IMO... ;HOOK .byte <(H<<2|O>>3) .byte <(O<<5|O) .byte <(K<<2|end>>3) .byte <(end<<5|end) What is important is the value attached to that lowercase "e"...bit value %11010...which generates a blank space in this program. But then I noticed after RAISE, the words changed to X's? I said that it was unfinished Those lines with the X's are Distella-generated...the data values are not yet seperated into values for the 2 letters. I never got around to editing them (which must be done by hand). The next line would have looked like this: ;READY .byte <(R<<2|E>>3) ; $FB54 .byte <(E<<5|A) ; $FB55 .byte <(D<<2|Y>>3) ; $FB56 .byte <(Y<<5|e) ; $FB57 Just copy/paste data lines that have the << >> breakdown over those. You are planning on using your own word list anyway, right? Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 4, 2010 Author Share Posted August 4, 2010 I gave it a quick once over before bed. Second and fifth letters repeat and lower case "e" for space. I get that. Nutball way to do it, but what do I know? It makes perfect sense if you look at what those data lines are doing. There are only room for 8 "bits" in a data byte. The first data line stores all 5 bits for the first letter, and two bits for the second letter. The other three bits for the second letter are stored on the next data line with the 3rd letter's 5 bits. That leaves one bit left over...the high bit from the first data line remains unused. This 2-byte pattern is used throughout the game: .byte -1111122 .byte 22233333 BTW I only used a lowercase "e" (for "end") to keep the data lines looking nice. Using a full word like "end", "space", or "delimiter" makes the tables look too crooked IMO... ;HOOK .byte <(H<<2|O>>3) .byte <(O<<5|O) .byte <(K<<2|end>>3) .byte <(end<<5|end) What is important is the value attached to that lowercase "e"...bit value %11010...which generates a blank space in this program. But then I noticed after RAISE, the words changed to X's? I said that it was unfinished Those lines with the X's are Distella-generated...the data values are not yet seperated into values for the 2 letters. I never got around to editing them (which must be done by hand). The next line would have looked like this: ;READY .byte <(R<<2|E>>3) ; $FB54 .byte <(E<<5|A) ; $FB55 .byte <(D<<2|Y>>3) ; $FB56 .byte <(Y<<5|e) ; $FB57 Just copy/paste data lines that have the << >> breakdown over those. You are planning on using your own word list anyway, right? So what yew are saying is I can IGNORE those lines? I was curious if I had to had have EXACTLY 510 words or if there was a way around it? Right now I have 117 words. Can I just fill the top part with the words and delete the rest? That seems too easy? Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 4, 2010 Share Posted August 4, 2010 You could just leave them the way that they are...that would fill up any unused space with leftover words from the original game. You can't just delete everything without adjusting the program to match...right now, the routine at LF182 picks a random 4-byte stretch of memory from $F800 to $FFF7...the AND instructions that follow limit the selection to specific pages of memory for differing skill levels. So the current program expects that word data fills the entire upper 2k. It doesn't check that valid words are actually there before it goes ahead and tries to use whatever data that is there (which would be all $FF's by default). Or, you could copy/paste your edited word data more times to fill up the space. That was the method used by the Hangman Editor program. Quote Link to comment Share on other sites More sharing options...
Cropsy Posted August 4, 2010 Share Posted August 4, 2010 Author of the Hangman Editor here... I've covered a bit of this with Thomas by PM but I'll add this here in case anyone is curious. The editor uses a PHP backend for the ROM editing so pulling it off the Wayback machine won't work. On the weekend I'll locate a backup of the code and get the site back online, my former Web Host helpfully deleted the previous incarnation without warning Hopefully Nukey and Thomas will have sorted out a working ROM for Thomas by then but I'll put the site back online for anyone else who might be interested. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 4, 2010 Share Posted August 4, 2010 That's good news I've been trying to edit the program to allow for 8-character words, but I'm having a bit of trouble positioning sprite copies to be used as letter dividers Might be better just to switch to sprites for the letters themselves...though that would leave the screen a bit empty. Then there's the issue of switching to a different delimiter method, so all that space isn't wasted for words that are shorter than 8 letters. Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 4, 2010 Author Share Posted August 4, 2010 Author of the Hangman Editor here... I've covered a bit of this with Thomas by PM but I'll add this here in case anyone is curious. The editor uses a PHP backend for the ROM editing so pulling it off the Wayback machine won't work. On the weekend I'll locate a backup of the code and get the site back online, my former Web Host helpfully deleted the previous incarnation without warning Hopefully Nukey and Thomas will have sorted out a working ROM for Thomas by then but I'll put the site back online for anyone else who might be interested. YAYAYAYAY! Happy Thomas! Quote Link to comment Share on other sites More sharing options...
tremoloman2006 Posted August 5, 2010 Share Posted August 5, 2010 Author of the Hangman Editor here... I've covered a bit of this with Thomas by PM but I'll add this here in case anyone is curious. The editor uses a PHP backend for the ROM editing so pulling it off the Wayback machine won't work. On the weekend I'll locate a backup of the code and get the site back online, my former Web Host helpfully deleted the previous incarnation without warning Hopefully Nukey and Thomas will have sorted out a working ROM for Thomas by then but I'll put the site back online for anyone else who might be interested. Awesome! I can't wait to give the editor a try! Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 5, 2010 Author Share Posted August 5, 2010 Awesome! I can't wait to give the editor a try! I feel quite a bit better now that I know I am not the only one who wants to try it. Quote Link to comment Share on other sites More sharing options...
Cropsy Posted August 9, 2010 Share Posted August 9, 2010 (edited) I'm running a bit late but the Hangman Editor is now back online in it's original location. You access it at http://videofringe.com/hangman/hangman.php If there are any issues please let me know. Edited August 9, 2010 by Cropsy 1 Quote Link to comment Share on other sites More sharing options...
Thomas Posted August 10, 2010 Author Share Posted August 10, 2010 I'm running a bit late but the Hangman Editor is now back online in it's original location. You access it at http://videofringe.com/hangman/hangman.php If there are any issues please let me know. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.