Jump to content
IGNORED

Gopher2600 (continuing development on Github)


JetSetIlly

Recommended Posts

2 minutes ago, Thomas Jentzsch said:

I also wonder how to get the result similar to AtariVox. Festival sounds very different as far as I can tell.

As I understand what I have read so far, @JetSetIlly has started with some "placeholder" phonemes. When more refined/correct phonemes are used, it will sound more like AtariVox.  In any case, even as it stands it will be excellent for those who want to develop who don't want to have to plug in the hardware to do so.

 

Link to comment
Share on other sites

1 minute ago, Thomas Jentzsch said:

I also wonder how to get the result similar to AtariVox. Festival sounds very different as far as I can tell.

Indeed. But Festival is very flexible and I've not done anything beyond the bare basics yet. I'll work on that this week.

 

However, even if it doesn't sound exactly like the AtariVox, it would serve as a convenient development tool for people without access to the hardware, which is my goal really.

 

 

 

Link to comment
Share on other sites

1 minute ago, JetSetIlly said:

However, even if it doesn't sound exactly like the AtariVox, it would serve as a convenient development tool for people without access to the hardware, which is my goal really.

That makes perfect sense. Or maybe not, if the results differ too much. You often have to experiment a lot with AVox to get the sounds right. So an too much abstracted result will only help in the very beginning of development.

Link to comment
Share on other sites

1 minute ago, Thomas Jentzsch said:

That makes perfect sense. Or maybe not, if the results differ too much. You often have to experiment a lot with AVox to get the sounds right. So an too much abstracted result will only help in the very beginning of development.

Good point. I'll bear that in mind.

 

The other thing missing from the Festival solution is the SpeakJet sound effects (codes 200 to 254). Not sure how to get around that. Probably a sample pack.

Link to comment
Share on other sites

3 minutes ago, JetSetIlly said:

Good point. I'll bear that in mind.

 

The other thing missing from the Festival solution is the SpeakJet sound effects (codes 200 to 254). Not sure how to get around that. Probably a sample pack.

You can produce your own phonemes, is that correct?

In that case, high quality recordings from an actual AtariVox might be sufficient to produce these?

Link to comment
Share on other sites

Just now, Thomas Jentzsch said:

Then it would make much more sense.

Just to be clear, I'm proposing to use samples for the sound effects only. The speech generation would require an awful lot of samples to cover all the possibilities. I think Festival is flexible enough to not require samples of the speech phonemes. But we'll see. I'll try to improve it this week. If it's still unsatisfactory then it was a worthwhile experiment.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Tempest said:

Did you ever release that version of Gopher with the comparison tool?  You know, the one you showed off here:

 

https://atariage.com/forums/topic/327474-pitfall-ii-beta/?do=findComment&comment=4953194

Yes. I included it in v0.16.0

 

https://github.com/JetSetIlly/Gopher2600/releases/tag/v0.16.0

 

You need to run it from the command line though in order to specify the ROM which you want to compare against. For example.

 

gopher2600 run -comparisonROM roms/prerelease/Solaris.bin roms/SOLARIS.BIN

 

Will run "SOLARIS.BIN" in the main emulation and "prerelease/Solaris.bin" will be run in the comparison window.

 

To keep things easy, the comparison will end the instant you switch to the debugger or rewind the emulation.

 

I'm not sure how useful it is but it works pretty well I think. If you have any ideas for how to improve it then let me know.

 

Link to comment
Share on other sites

17 minutes ago, JetSetIlly said:

Yes. I included it in v0.16.0

 

https://github.com/JetSetIlly/Gopher2600/releases/tag/v0.16.0

 

You need to run it from the command line though in order to specify the ROM which you want to compare against. For example.

 


gopher2600 run -comparisonROM roms/prerelease/Solaris.bin roms/SOLARIS.BIN

 

Will run "SOLARIS.BIN" in the main emulation and "prerelease/Solaris.bin" will be run in the comparison window.

 

To keep things easy, the comparison will end the instant you switch to the debugger or rewind the emulation.

 

I'm not sure how useful it is but it works pretty well I think. If you have any ideas for how to improve it then let me know.

 

Ah thank you.  What version of Linux is your Linux for?  I'm using Arch, does it work with that?

Link to comment
Share on other sites

7 minutes ago, Tempest said:

Ah thank you.  What version of Linux is your Linux for?  I'm using Arch, does it work with that?

Maybe. It's compiled for amd64 architecture on Debian so there's a good chance. The only thing which might not be installed by default for you is SDL2

 

If it doesn't work, let me know and I'll see what I can do.

Link to comment
Share on other sites

2 minutes ago, Tempest said:

How are you running it?  I downloaded the file but my system seems to want to open it in Notepad of all things.

You'll need to set the execute bit.

 

chmod u+x <file>

 

in the command line. I should really zip the files up and distribute them like that.

Link to comment
Share on other sites

12 minutes ago, JetSetIlly said:

You'll need to set the execute bit.

 

chmod u+x <file>

 

in the command line. I should really zip the files up and distribute them like that.

Thank you!  I can't believe I didn't think of that... But I still have to run it from the command line to use the comparison feature right?

Link to comment
Share on other sites

4 minutes ago, Tempest said:

Thank you!  I can't believe I didn't think of that... But I still have to run it from the command line to use the comparison feature right?

You do. For normal operation, it'll run from the desktop and open a file requester but for the comparison feature you'll need the command line.

Link to comment
Share on other sites

5 minutes ago, JetSetIlly said:

You do. For normal operation, it'll run from the desktop and open a file requester but for the comparison feature you'll need the command line.

I can't get it to run from the command line.  I can double click it and run the program, but when I try your syntax above I get:
 

Quote

 

>>gopher2600 run -comparisonROM roms/prerelease/Solaris.bin roms/SOLARIS.BIN

 

bash: gopher2600: command not found

 

 

Even though I've rename the executable to gopher2600

Link to comment
Share on other sites

That works!  Now I just need to figure out what I'm seeing.  For example I noticed that the differences windows shows an 'outline' around the Millipede when I compare the proto and the released version.  Does that mean that the Millipede is thicker in one version than the other?

 

 

Millipede.bin Millipede_proto.bin

Link to comment
Share on other sites

1 minute ago, Tempest said:

That works!  Now I just need to figure out what I'm seeing.  For example I noticed that the differences windows shows an 'outline' around the Millipede when I compare the proto and the released version.  Does that mean that the Millipede is thicker in one version than the other?

 

 

Millipede.bin 16 kB · 1 download Millipede_proto.bin 16 kB · 1 download

 

Not necessarily. The diff image just shows those pixels that are different between the two emulations. A pixel is considered different if it is a different color.

 

In the case of Millipede I think what you're seeing is the millipede being slightly ahead in one emulation than the other. Meaning that you see the outline of the millipede in the diff window.

 

At the moment, I'm not sure the tool can tell you much other than that they are different. It's difficult to see how they are different.

 

Link to comment
Share on other sites

On 3/4/2022 at 6:27 PM, JetSetIlly said:

 

In the emulator, the AtariVox/SpeakJet bitstream is decoded, translated into Festival instructions and piped to the Festival process.

 

I very quickly converted the SpeakJet codes to phonemes that Festival can work with so the voice in the video is a little rough. I can definitely do a better job of this and I also need to support the codes that control volume, pitch, speed etc. But as a proof of concept I think this is promising.

 

Do you have a table to translate the SpeakJet codes to Festival? This must have been a lot of work, or did you find an easy solution?

 

I once thought of using an ESP32 and the talkie lib to make an open source variant of the AtariVox, which also would offer internet features similar to the PlusROM functions.

 

 

But translating the SpeakJet codes to talkie code or back to text and then to talkie code seemed to be a lot of work and so I have postponed the project.

 

 

  • Like 1
Link to comment
Share on other sites

2 minutes ago, Al_Nafuur said:

Do you have a table to translate the SpeakJet codes to Festival? This must have been a lot of work, or did you find an easy solution?

 

It'll be a lot of work to do it correctly and satisfactorily I think.

 

The SpeakJet codes came from page 16 of the Speakjet usermanual https://people.ece.cornell.edu/land/courses/ece4760/Speech/speakjetusermanual.pdf

 

I converted those to the phonemes used by Festival's US phoneset http://festvox.org/festvox-1.2/festvox_18.html

 

For example: I decided that code 164 is the 'ow' phoneme in that phoneset.

 

This was a very quick sub-project done more or less in an afternoon so I've no doubt made mistakes and bad choices during the conversion. It can definitely be better.

 

Ideally there would be a SpeakJet phoneset for Festival but I don't think it exists.

 

2 minutes ago, Al_Nafuur said:

 

I once thought of using an ESP32 and the talkie lib to make an open source variant of the AtariVox, which also would offer internet features similar to the PlusROM functions.

 

But translating the SpeakJet codes to talkie code or back to text and then to talkie code seemed to be a lot of work and so I have postponed the project.

 

 

I'm not familiar with that library. Does the ESP32 work in a similar fashion to the SpeakJet? (ie. you stream bits at a given baud to indicate what phoneme to play next)

 

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