Jump to content
IGNORED

Programming the Bally Arcade/Astrocade


ballyalley

Recommended Posts

Very cool! I love the idea of an Astrocade port of Bad Apple. :)

 

Regarding the color conversion, the script converts the image to a static color palette of eight colors: red, magenta, blue, cyan, green, yellow, black, and white. This works well for full-color images but will miss grays on grayscale images. I could probably add some kind of grayscale detection to the script someday, but in the meantime, a quick hack would be to recolor your gray pixels to, for example, red (#FF0000) and green (#00FF00) in an image editor. Then you can tweak the palette in the .asm back to grays.

 

On the other hand, you could probably do some nice compression on the Bad Apple graphic data if it's only two-color, as you'd only need one bit per pixel to represent it...

  • Like 1
Link to comment
Share on other sites

  • 3 months later...
Jamie Fenton is the creator of the arcade games Gorf and Robby Roto, as well as the Astrocade game system, OS and Bally Basic.


She recently donated a bunch of items to the Computer History Museum in Mountain View, CA. Along with various documents, the collection contains

an original development system that was used to create and debug software for these platforms.


The development system is called an "icebox" - a floppy disk-based Z80 system used as a substitute "CPU and memory", working with the target system hardware. It was used to write programs in Z80 assembly, as well as Terse - a version of the Forth programming language. An early version of the system ran CP/M, but later it was modified to boot a Terse-based OS.


Information from this collection is available here:



The MAME team is now working on emulating the development system. It can already boot the Terse-based OS in emulation.


A number of disk images were also donated, and they are currently being looked at. They contain source code snippets and binaries for various arcade machines and Astrocade programs, tools for assembly and cross-compiling, as well as some possibly unreleased stuff, such as source code for the unreleased prototype of Ms. Gorf.


At this time, it's not clear exactly how much stuff there is, or how much we can get working in emulation. But this is a fairly exciting development and I wanted to share the news!
  • Like 4
Link to comment
Share on other sites

 

Jamie Fenton is the creator of the arcade games Gorf and Robby Roto, as well as the Astrocade game system, OS and Bally Basic.
She recently donated a bunch of items to the Computer History Museum in Mountain View, CA. Along with various documents, the collection contains
an original development system that was used to create and debug software for these platforms.
The development system is called an "icebox" - a floppy disk-based Z80 system used as a substitute "CPU and memory", working with the target system hardware. It was used to write programs in Z80 assembly, as well as Terse - a version of the Forth programming language. An early version of the system ran CP/M, but later it was modified to boot a Terse-based OS.
Information from this collection is available here:
The MAME team is now working on emulating the development system. It can already boot the Terse-based OS in emulation.
A number of disk images were also donated, and they are currently being looked at. They contain source code snippets and binaries for various arcade machines and Astrocade programs, tools for assembly and cross-compiling, as well as some possibly unreleased stuff, such as source code for the unreleased prototype of Ms. Gorf.
At this time, it's not clear exactly how much stuff there is, or how much we can get working in emulation. But this is a fairly exciting development and I wanted to share the news!

 

 

I know we'd all like to see the original version of Robby Roto and maybe even Ms. Gorf if you find them on those disk images!

Link to comment
Share on other sites

[Jamie Fenton] recently donated a bunch of items to the Computer History Museum in Mountain View, CA. Along with various documents, the collection contains an original development system that was used to create and debug software for these platforms.

The CP/M development system can be seen in a couple of videos on YouTube with Jay Fenton. Jamie has done so much for the arcade community. Jamie, if you're reading this... you're awesome!

 

The development system is called an "icebox" [...] An early version of the system ran CP/M, but later it was modified to boot a Terse-based OS.

TERSE is such an odd language. If a TERSE compiler can be found in this documentation, then that would be a windfall! I understand that Gorf actually has a TERSE interpreter built into it. I wonder if Jamie had any ZGRASS stuff in there? There is a system that needs to be emulated-- but that's hard to emulate when the system hardware and software are not easy to come across.

 

Information from this collection is available here:

http://bitsavers.org/pdf/nuttingAssoc/

 

I urge all readers here to take a look through the above link. You'll find that the source code for "AstroBASIC" is called "Bally BASIC 3.5. The final version of the source code (which seems to be from the same document source as the one on BallyAlley.com) is December 4, 1980. It's also really neat to see the way Jay set up the source code as code snippets that are linked together. I have to take a much closer look at all of this documentation.

 

I didn't notice any source code for the extended BASICs (Vipersoft BASIC, Blue Ram BASIC, and Hot Rod BASIC) for the Astrocade. If you any of that is available, then that would be so cool too!

I find it rather neat (and a great compliment!) that there are resources in that archive that Jamie donated that are from BallyAlley.com-- even some documents that I wrote. How very weird!

 

Please, if you get a chance, then look at the wonderful resources that are now online. Maybe (hopefully!) there will be more to come!

 

The MAME team is now working on emulating the development system. It can already boot the Terse-based OS in emulation.

 

MAME programmers/authors; you're all wunderkind! Good luck getting the OS running, and maybe finding the source code to some of the arcade games.

 

"128Kgames" games said, "I know we'd all like to see the original version of Robby Roto." That might be a weird statement. What Michael meant by that is that in comments made by Tom Meeks in 2001 (http://www.ballyalley.com/ballyalley/interviews/tom_meeks.txt), he said:

 

"Robby Roto, BTW, wasn't created until just before we filed for Chapter 11. While in development, it was THE most fun game I have ever played. Unfortunately, the Midway brass force DNA to change it so that it played shorter... and, it absolutely ruined the game. The game released to the field was, to me, only a poor shadow of what it had been in the latter stages of development. If anyone could find THAT code then they would really have something."

 

I doubt that this "missing" game will ever surface, but if it did, then it would be similar to the early version of Wizard of Wow that came out of nowhere a few years ago.

 

A number of disk images were also donated, and they are currently being looked at. [...] At this time, it's not clear exactly how much stuff there is, or how much we can get working in emulation. But this is a fairly exciting development and I wanted to share the news!

 

Thanks for letting us all know about this great donation and for continuing to save the heritage of the videogame community.

 

Adam

Link to comment
Share on other sites

 

Jamie Fenton is the creator of the arcade games Gorf and Robby Roto, as well as the Astrocade game system, OS and Bally Basic.
She recently donated a bunch of items to the Computer History Museum in Mountain View, CA. Along with various documents, the collection contains
an original development system that was used to create and debug software for these platforms.
The development system is called an "icebox" - a floppy disk-based Z80 system used as a substitute "CPU and memory", working with the target system hardware. It was used to write programs in Z80 assembly, as well as Terse - a version of the Forth programming language. An early version of the system ran CP/M, but later it was modified to boot a Terse-based OS.
Information from this collection is available here:
The MAME team is now working on emulating the development system. It can already boot the Terse-based OS in emulation.
A number of disk images were also donated, and they are currently being looked at. They contain source code snippets and binaries for various arcade machines and Astrocade programs, tools for assembly and cross-compiling, as well as some possibly unreleased stuff, such as source code for the unreleased prototype of Ms. Gorf.
At this time, it's not clear exactly how much stuff there is, or how much we can get working in emulation. But this is a fairly exciting development and I wanted to share the news!

 

 

Very cool! I saw one of the folders in that link is for ZGRASS - did Jamie actually still have the source code on hand to run that? Could it actually get emulated?

Link to comment
Share on other sites

There were only fragments of an early zGrass in the boxes of paper.

I thought it was important to get that saved, though.

 

Definitely. I guess it comes back around to trying to get Tom DeFanti to agree to donate/dump his data tapes of ZGRASS, since it seems as though he's the only one who has the full thing. This is still really cool, though. Will her materials eventually be made available to researchers?

Edited by ubersaurus
Link to comment
Share on other sites

[Jamie Fenton] recently donated a bunch of items to the Computer History Museum in Mountain View, CA. Along with various documents, the collection contains an original development system that was used to create and debug software for these platforms.

I've been going through the pictures and documentation. The TERSE source code for is for "BASEBALL." I think it's for Tornado Baseball. Is TERSE one of the earliest uses of programming arcade games NOT in assembly language?

 

I love the pictures of the development system that Jay Fenton used for programming in the late-1970s/early-1980s!

 

Adam

Link to comment
Share on other sites

I don't think TERSE was an arcade game language, though I don't know if Fenton used it on Gorf. Tom McHugh always coded in assembly, up to and including Wizard of Wor. By the 80s I believe that Forth had an adherence in some places and Atari had definitely developed an internal scripting language of some sort.

 

Jamie told me about some of this stuff she had accrued so I'm stoked it's going to a good home. CHM is quickly becoming the technical counterpoint to the sociological bent of the Strong Museum.

Link to comment
Share on other sites

I was really glad to hear this. I also immediately thought about Ms. Gorf and the fabled better version of Robby Roto that didn't try to eat your quarters quite so much. There are three versions of Robby Roto source code on-line now, dated 11-20-1981, 12-7-1981, and 12-9-1981. I don't know when those changes were made, but that seems promising.

 

What's the status of archiving Jamie Fenton's disks? I believe there was some trouble with these before. I'm not quite sure if it was actually a problem reading the disks, or if all the binary data was captured and it was merely a question of how to interpret it. In the latter case, I imagine the development system would help quite a lot.

Link to comment
Share on other sites

Funny about the Roto thing, in the footage out there with Jamie back in 1982 she said they retooled the game after a showing at the AOE show in March. It might be that all the versions of the source code were before that point but I don't think anyone's tried to compile that yet.

Link to comment
Share on other sites

  • 2 weeks later...

When I was first working on the Astrocade driver in MESS, I generated this HTML file with the equation I was using in the emulator:

 

http://www.ballyalley.com/ml/ml_docs/astrocade_palette.html

 

I'm honestly not sure if it's been approved upon since then, and I'm not sure I have the python script anymore :(

That said, MAME still uses the same (maybe identical) code to generate the palette:

 

https://github.com/mamedev/mame/blob/4263a71e64377db11392c458b580c5ae83556bc7/src/mame/video/astrocde.cpp#L78

 

-Frank

Link to comment
Share on other sites

What is the color palette for the Bally Astrocade?

 

The Astrocade has a palette of 256 different colors. Here's a link to them all:

 

http://www.ballyalley.com/ml/ml_docs/astrocade_palette.html

 

Without using any machine language "tricks," a normal screen can display eight colors. The left and right sides of the screen can be divided anyplace (many games do this right down the center of the screen, but this doesn't have to be the case). This allows four colors on the left side of the Horizontal Color Boundary and and four colors on the right side of it. Most games usually choose to share some colors on both sides of the screen. This means that many games, effectively, use just six colors. However, using interrupts, it's possible to get all 256 colors on the screen at one time. I can't think of any games that use all the colors at once, but there are a few demos that show all the colors at once, such as the aptly named 256 Color Display, which was reprinted in the "AstroBASIC" manual.

 

Some games, such as the title screen for Treasure Cove

 

 

and the gameplay of War

 

 

do show off quite a bit of color. For a game system that finally was released in January 1978, this was very impressive for the time.

 

Adam

Link to comment
Share on other sites

When I was first working on the Astrocade driver in MESS, I generated this HTML file with the equation I was using in the emulator:

 

http://www.ballyalley.com/ml/ml_docs/astrocade_palette.html

 

We're two ships crossing in the night! While I was writing a reply to this palette question, Frank came along and posted the same link. It's cool that people are paying attention to this thread. Oh, and, Frank, thanks for making that color listing so many years ago.

 

As an aside, since this is a programming thread, this morning I tested a high-res cartridge using the Astrocade emulation in MAME. It doesn't work quite right (I suspect because the Astrocade emulator doesn't technically support hi-res mode, even though the Astrocade chipset used in arcade games does use hi-res), but this cartridge does work a real Astrocade that has been upgraded to use hi-res mode. I'll be testing this program more as the week progresses. The demo isn't ready for public use yet (it'll be quite a while, actually), but when it is, I'll be sure to post more about it. Oh, and I didn't write it. It was written by Michael Matte, who upgrade his Astrocade to be able to use hi-res mode in about 1986 or so.

 

Adam

Link to comment
Share on other sites

What is the color palette for the Bally Astrocade?

 

Here is an example of the 256 Color programming running under the Machine Language Manager cartridge:

 

https://www.youtube.com/watch?v=X27RyCpfWQo&t=649s

 

This program will also run under "AstroBASIC." This 256 color program was captured via an Astrocade hooked up via RF, into an RF demodulator (getting composite out) and then converted to HDMI. By the time the video is uploaded to YouTube, there is a bit of screen tearing that you would not see on an actual CRT TV. The only way to get a more accurate picture, I guess, is to take a picture of the program running with a camera using a slow shutter speed.

 

I hope that this gives a rough idea of the colors that are available on the Astrocade. With so many color to choose from, how will we ever use all these colors in one program?!? ;-)

 

Adam

  • Like 1
Link to comment
Share on other sites

  • 10 months later...

An In-Depth Look At... Series: A Supplement to the "Nutting Manual"
By MCM Design (Michael Matte).

 

This multi-part programming tutorial series, first "published" online in July 2019, focuses on programming in Z80 assembly language and machine language. Special attention is paid to specifically programming the Bally Arcade/Astrocade, with an in-depth look at the "Nutting Manual." Specific instructions, Z80 programming examples and links to useful Astrocade/Z80 documents are provided. This series is initially set up for a beginner interested in programming in assembly language or machine language.

 

Here is a link to the main page of the series:

 

https://ballyalley.com/ml/ml_docs/An_In-Depth_Look_At/An_In-Depth_Look_At.html

 

Note that most of these tutorials are RTF (Rich Text Format) documents. Many common word processors (such as Microsoft Office) can open these documents, including the freely available Open Office suites.

 

The series has its own thread on AtariAge.com, here:

 

https://atariage.com/forums/topic/293889-an-in-depth-look-at-series-nutting-manual-supplement/

 

Michael Matte, the author of the series, would like all comments and questions about the "In-Depth" series to be posted in the above thead.

 

It is the hope of both Michael and myself that this series provides the information needed for a neophyte Z80 programmer who wants to investigate how to specifically program the astrocade using the many routines built into the system.  Perhaps, some individuals will even be spurred to create some homebrew software.

 

Adam

Link to comment
Share on other sites

  • 7 months later...

I added an article to BallyAlley.com called "Hacking 'Astro Battle' ('Space Invaders') on the Bally Arcade/Astrocade" by Adam Trionfo.

 

Astro_Battle_Screenshot_01.png.4e70ad409d5de56764353e7c88ff0d5f.pngEditing_Astro_Battle_with_Hex_Editor.thumb.png.e913a11bde31cabef916149bf5604826.png

 

This article, which I compiled today, is an edited and expanded collection of postings originally made to the Bally Alley discussion group in August of 2011 that give an overview of how to modify the "Astro Battle" game cartridge, which is Astrocade, Inc.'s 1979 version of "Space Invaders." Included is the binary ROM image for a hack to get rid of the bunkers in the game as well as explanations on how to hack the ROM or use an available Z80 disassembly of the game to make more modifications, such as adding up to 255 lives.

 

Other members of the Bally Alley discussion group, especially Lance Squire, added plenty of their own work to the threads that eventually sprang forth from the original topic of discussion.

 

You can read the article here and download the binary for a few of the hacks, here:

 

https://ballyalley.com/ml/ml_docs/Hacking_Astro_Battle/Hacking_Astro_Battle.html

 

This article may seem a bit piece-meal, but I did my best to include the important information from the threads that took place on the Bally Alley discussion group. I have wanted to post this as an article for nine years but I wanted to make it "perfect" first.  I realize I don't have time for that to happen, so sometimes the tense in this article might seem a little "off." Also, if any information seems missing from this compiled article, then read the individual postings at Groups.io.

 

I was prompted to write this article when Michael Matte asked me some questions on how to use a Windows hex editor.  I thought I'd make a video using a hex editor to hack "Astro Battle" to get extra lives.  This provoked me to re-visit these original hacking posts and I was able to pull an article together with the various threads that materialized back in August 2011.

 

I have hopes that this article will inspire non-hackers to hack an Astocade game for the first time.  I promise, it's not as hard as you think

 

Have fun!

 

Adam

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