It is currently Wed May 24, 2017 10:38 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: Sprint 2 arcade hardware
PostPosted: Wed May 25, 2016 2:50 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5682
Location: Seattle
About a month ago, Hackaday had an article about some really old arcade hardware. One of the earliest microprocessor-based ones, with clear heritage from the older digital-logic-only boards that preceded it.

In the intervening time I've been stupidly obsessed with it, because it's so familiar and yet so alien:
* One of the first 6502-based arcade machines (late 1976) (←edit)
* A sprite system similar to the C64's
* A dual-ported video memory system similar to the VIC-20 and C64
* Predating the VIC-20 by 4 years (and the C64 by 6 years)
* The same nominal resolution (and pixel aspect) as the NES
* About as much available-for-CPU RAM as the 2600

I initially started porting a specific deliberately disowned project by tepples to it, but between deciding that I Was Not Going To Release It (that would be horribly rude), and the UI (and MAME UI) impedance mismatch, I decided it wasn't any fun anymore.

So I made a simple sound-effect tool instead.

The hardware actually has 1 KiB of RAM, of which 7/8ths is used for the nametable = screen memory. Another 15 bytes are used for the various sprites and other control registers. The remaining 113 bytes are all that's easily used by the CPU for whatever not-directly-visible state exists.

MAME's emulation is (of course) kinda lackluster.

Attached are:
* My (somewhat meandering) notes about the hardware, and MAME's emulation of same
* My source code for my sound effect generator (h/t Shirtu for NESst)
* A pre-compiled build of the sound effect generator so that you can just run it

Sound effect editor UI:
Right steering wheel / MAME left/right - move left/right
Left steering wheel / MAME d g - move up/down
Either gas pedal / MAME lctrl a - play
Gearshifts / MAME z x c v q w e r - edit item under cursor
Track select / MAME spacebar - clear current item under cursor
Either start button / MAME 1 2 - clear current row under cursor


Attachments:
sprint2notes.txt [10.57 KiB]
Downloaded 42 times
sfxtool.zip [12 KiB]
Downloaded 31 times
File comment: The filename is the only way you get MAME to run it correctly, this is 100% original-to-me code and data
sprint2a.zip [2.93 KiB]
Downloaded 30 times


Last edited by lidnariq on Fri May 27, 2016 7:19 pm, edited 1 time in total.
Top
 Profile  
 
PostPosted: Wed May 25, 2016 4:26 pm 
Offline

Joined: Sun Mar 19, 2006 9:44 pm
Posts: 880
Location: Japan
Cool stuff. I'll watch the video and read the docs. I love examining old, old hardware too, and seeing how clever things were implemented.

I _suppose_ the advantage of having the BG map in limited RAM is being able to check quickly for collisions... but using 7/8 of the RAM for that seems wasteful. Then, on the other hand, the BG has to be somewhere on a RAM chip on the board, so I guess it makes sense to consolidate needed RAM into a single chip. (Sorry, just thinking to myself.)

_________________
http://www.chrismcovell.com


Top
 Profile  
 
PostPosted: Wed May 25, 2016 5:06 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5682
Location: Seattle
I think that had it actually been done entirely in discrete logic, they'd have just played the tracks out of ROM, instead of copying and unpacking the 4 bits-per-tile into the nametable.

I think the big reason they switched to (comparatively) lots of RAM for the tile map with a CPU is that it makes the state machine that renders the screen a lot simpler. You don't need to say "oh, it's scanlines 0-7, I should maybe display the message about coins; now it's scanlines 8-23, should I display the score; now it's scanlines 24-63, should I display the message or the track"


Top
 Profile  
 
PostPosted: Fri May 27, 2016 4:03 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5682
Location: Seattle
Oh, I forgot the other major thing I wanted to mention.

The hardware was used in a bunch of different games, not just Sprint 2 and its direct derivatives.

Over the following several years, Atari (and its subsidiary Kee Games) produced at least another nine games that used closely-related hardware:
* Basketball
* Boxer (prototype only, according to MAME)
* Canyon Bomber
* Dominos
* Flyball
* Minigolf (prototype only, according to MAME)
* Subs
* Super Breakout
* Ultra Tank


Top
 Profile  
 
PostPosted: Fri May 27, 2016 4:04 pm 
Offline

Joined: Mon Nov 10, 2008 3:09 pm
Posts: 329
A lot of early arcade games had really long hblank periods--a 67%/33% active/hblank ratio was absolutely typical. The hardware needed that much time to prepare the sprites.

I remember that the operators manual for one of the first arcade games to use a 320 pixel horizontal resolution (I think it might have been Gradius 2?) warned that when you were converting a cabinet from another game, you would most likely have to adjust the monitor to keep the picture from spilling off the edges.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group