Jump to content
IGNORED

Gopher2600 (continuing development on Github)


JetSetIlly

Recommended Posts

Video showing new audio engine. This is a straight reimplementation of @Crispy research and is the same as 6502.ts and Stella. Sounds pretty good I think.

 

The video also shows a new Audio Tracker window. Early stages of development yet but it's helped me track down a bug so it could be useful for regular development work too.

 

Thanks to @DirtyHairy for pointing me in the right direction for the engine implementation.

 

 

Edited by JetSetIlly
  • Like 4
Link to comment
Share on other sites

  • 3 weeks later...

Version 0.15.

 

Major change this version is the ability to switch between debugger and play mode with the key below the escape key - tilde key on US keyboard (the same default key as in Stella).

 

There is also a ROM requester that will show on startup meaning that the emulator can be now be launched from the desktop. The requester window will show a thumbnail for all supported ROMs.

 

Performance is also improved I would say and there is a new interference effect in the CRT emulation.

 

Full changelog on the release page: https://github.com/JetSetIlly/Gopher2600/releases/tag/v0.15.0

 

Some features are better shown rather than described so I made a short video illustrating some of the most interesting ones introduced this version. (Best viewed in HD 60fps)

 

 

 

I've tried adding an icon to the Windows binary but it's not that successful yet. It definitely needs some work. It's based on a fun logo I made this morning. The logo works but it's too complex for an icon.

 

logo4_bg.thumb.png.ecdfdcf194f05e500ac25d9e1e421771.png

 

As ever, feedback is welcome.

  • Like 6
Link to comment
Share on other sites

  • 2 weeks later...

I was watching game 4 of the Chess World Championship this afternoon and stared thinking about computer chess. Specifically, whether I could get Video Chess to play against an external chess engine. Here's the first attempt. Video Chess is playing black.

 

It should work against any standard chess engine but in this instance I'm using Stockfish.

 

 

  • Like 1
Link to comment
Share on other sites

12 minutes ago, JetSetIlly said:

I was watching game 4 of the Chess World Championship this afternoon and stared thinking about computer chess. Specifically, whether I could get Video Chess to play against an external chess engine. Here's the first attempt. Video Chess is playing black.

 

It should work against any standard chess engine but in this instance I'm using Stockfish.

 

 

 

Ha... very neat indeed!  I had a dream of getting my chess engine to play online engines via PlusCart, but that never eventuated.

 

Link to comment
Share on other sites

A longer video of Video Chess playing Stockfish.

 

The bot is moving a little bit quicker now. I don't think I can't get it going any quicker though because of how Video Chess works. I certainly don't think I can just poke values into memory but I could be wrong on that.

 

Link to comment
Share on other sites

This version of the bot is working only with visual and audio cues. There is no direct access of the emulation's memory.

 

The plan is to extend this framework to other games but obviously, most other games are more complex so that will be quite a challenge. Combat would be a good second project I think.

 

 

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

First attempt at a bot capable of playing Space Jockey.

 

It's very basic but I'm pleased with how I'm doing this. Like the VideoChess bot this is doing "real" monitoring of the screen and "real" joystick control. No reading of RAM or anything like that.

 

 

 

 

 

 

  • Like 2
Link to comment
Share on other sites

2 minutes ago, JetSetIlly said:

First attempt at a bot capable of playing Space Jockey.

 

It's very basic but I'm pleased with how I'm doing this. Like the VideoChess bot this is doing "real" monitoring of the screen and "real" joystick control. No reading of RAM or anything like that.

 

 

 

 

 

 

cool, but you should tell your bot to avoid the enemy's missiles ;-)

 

Link to comment
Share on other sites

  • 1 month later...

Lots of changes have accumulated in the last couple of months. Full change log and binaries here:

 

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

 

The main new feature is performance profiling of ARM binaries. This requires an ARM using ROM to be compiled in a certain way but it's been useful to me so far. I've included a video to give everyone an idea of how it works.

 

 

The ROM in the video is @SpiceWare's Collect3 demo project compiled for the PlusCart. The first thing I do in the video is open the Performance window. This window shows the most computationally expensive lines of C code during the previous frame. Clicking on an entry opens the Source window at the correct line, providing context.

 

I run the program some more and we can see how the performance profile changes when the program reaches the menu screen. The Timeline window can be used to move back to an earlier frame and the performance window will be updated accordingly.

 

The Illegal Accesses window will be useful when porting ROMs intended for the Harmony to another cartridge type, for example the PlusCart.

 

In the video the Illegal Accesses window shows are four entries. Like the Performance window, clicking on an entry opens the Source window at the correct place. In this instance, the illegal accesses is related to the address related to the timer in the ARM processor - the header files used for compilation have not been updated for the PlusCart.

 

Do note that there are limitations to the information I can currently provide and indeed, some information might be misleading - I don't currently handle inlined functions very well for example. But this is an area I will be looking to improve for the next release.

 

 

In addition, Gopher2600 now supports Genesis controllers and the EF bankswitching format.

 

Bots and Comparison I've mentioned in other posts. Both are still a work in progress.

 

By default, the CRT television emulation will now visibly sync on startup (depending on the ROM). If you don't like this you can turn it off by unchecking the "Synchronise on Power" option.

 

image.thumb.png.47a38282e6bc0cacb16aed8366c5c3c7.png

 

 

Finally, there is now a 6507 Pinout window. This shows the state of the 6507's pins on any given video cycle. It also shows the values on the address and data bus at any given time. This might be useful to help tracking down and understanding bugs related to the reading of undriven pins and phantom writes.

 

 

 

 

  • Like 6
  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...

First attempt at adding AtariVox support to Gopher2600.

 

This solution relies on a Festival running in a separate process.

 

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.

 

 

 

 

  • Like 10
Link to comment
Share on other sites

1 minute ago, Thomas Jentzsch said:

Cool! But Festival is limited to Linux only, so how will that work with other OS?

Is it? I'd be surprised if it's not compilable for other OSs but I'll admit I've not researched that yet.

 

Either way, it's just an idea at the moment. I'll code it such it that the speech engines are changeable. A good alternative to Festival might be Flite, but Festival was the first engine that came to mind.

 

A SpeakJet emulator would be perfect of course, but I don't think it exists.

 

In the absence of any speech engine though, subtitles might be a good fallback solution. Hah.

  • Like 1
Link to comment
Share on other sites

https://www.cstr.ed.ac.uk/projects/festival/download.html

 

Quote

Festival is free software. Festival and the speech tools are distributed under an X11-type licence allowing unrestricted commercial and non-commercial use alike.
...

To run Festival you need:

  • A Unix-like environment, e.g Linux, FreeBSD, OSX[prior name for macOS], cygwin under Windows.
  • A C++ compiler: we have used GCC versions up to 4.
  • GNU Make any recent version.

 

 

  • Like 2
Link to comment
Share on other sites

4 hours ago, SpiceWare said:

I'm struggling to see what is platform-specific here.  The source code for Festival, and the underliying Edingburgh Speech Tools Library appear to be avaialble for download. Seems to all be written in C++.  Maybe it's a relatively simple port to other OS's?

 

Link to comment
Share on other sites

11 minutes ago, Andrew Davie said:

I'm struggling to see what is platform-specific here.  The source code for Festival, and the underliying Edingburgh Speech Tools Library appear to be avaialble for download. Seems to all be written in C++.  Maybe it's a relatively simple port to other OS's?

 

The bit @SpiceWare quoted makes it sound like it can be compiled on Mac and Windows, with the Cygwin tools installed in the latter case.

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...
×
×
  • Create New...