Jump to content
IGNORED

Hangman Editor = No More? :(


Thomas

Recommended Posts

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. :(

Link to comment
Share on other sites

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)

  • Like 2
Link to comment
Share on other sites

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 by Thomas
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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? :)

Link to comment
Share on other sites

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. :)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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? :)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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! :)

Link to comment
Share on other sites

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! :) :thumbsup:

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...