Releases: plasticbugs/analogue-pocket-nbajam
Release list
NBA Jam for Analogue Pocket v0.2.1
NBA Jam for Analogue Pocket — 0.2.1
0.2.1 fixes the ROM recipes; the core itself is unchanged from 0.2.0
(same bitstream, md5 97a294176f0ab618921b9efbc99ebab4).
- The standard
mratool now builds correct images. The.mrafiles
wrote their interleavemapdigits in the reverse of the MRA convention, so
mraproduced scrambled images (with only an md5 warning). Both
mra -z <romdir> nbajam.mraandmra -z <romdir> nbajamte.mranow give
exactly the images below, and so doesmra_build.py. - Merged romsets work. A merged
nbajamte.zipalso holds the clone
nbajamte4's same-namedug12in a subfolder;mra_build.pypicked the
wrong one. It now chooses by CRC. - Romset notes: Tournament Edition is MAME's
nbajamte(rev 4.0 3/23/94).
Older sets that name NBA Jam's two speech ROMsnbau12.u12/nbau13.u13
(before MAME 0.253) work with both tools:mraandmra_build.pyfind a
file by its CRC as well as its name.
0.2.0
Midway's T-unit arcade board as an openFPGA core, now running both NBA Jam
(1993, rev 3.01) and NBA Jam Tournament Edition (1994, rev 4.0 3/23/94).
Tested on a Pocket: picture, sound and smooth play in both.
New in 0.2.0
- Tournament Edition. Pick the game from the list when the core starts;
the core recognises which one it was given from the ROM itself. Each game
keeps its own settings and high scores. - Smoother play. Busy scenes (a basket in view) no longer drop frames:
the video memory now writes at full rate. - Controls laid out like the arcade panel (from 0.1.1): Y turbo, X shoot,
A pass; B is a second pass and R a second turbo. - Settings and high scores kept: service-mode settings, audits and high
scores are saved to the SD card per game
(Saves/nbajam/plasticbugs.nbajam/nbajam.sav,nbajamte.sav) and loaded
back when the core starts. - The platform image, correct game details (Midway, 1993), and the
diagnostic items gone from the menu.
Installing
-
Unzip onto the root of the SD card (
Cores/,Platforms/,Assets/).
Coming from 0.1.x, replace everything; the game list is new. -
Build the ROM images from your own MAME romsets — no ROM data is
included, and none ever will be:python3 mra_build.py nbajam.mra nbajam.zip # md5 b6a0b85732103ba8ec4fa6a65ddd2c32 python3 mra_build.py nbajamte.mra nbajamte.zip # md5 1ae1931e7073e9131c9c9336bc6b0fdc -
Put them in
Assets/nbajam/common/(nbajam.rom,nbajamte.rom).
On the very first start each game says "CMOS INVALID -- FACTORY SETTINGS
RESTORED": press any button. That is the arcade's own behaviour with a blank
settings memory.
Controls
Laid out like the arcade panel (Turbo, Shoot, Pass from left to right):
Y turbo, X shoot / block, A pass / steal; B is a second pass, R a second
turbo; Select coin, Start start.
Menu
Free Play, Cabinet (2 or 4 player), Attract Video Clips (NBA Jam only),
and Service Switch + Reset Core for the game's own test menu.
Known limits
- When the game clears a whole screen with its CPU (scene changes such as the
tip-off) this core takes about three frames where the arcade takes one, so
those moments hitch briefly. - Players 3 and 4 are not wired.
- A game never replays exactly like MAME's: NBA Jam takes its random numbers
from the video beam's position, as the arcade did.
How it was checked
Against MAME 0.288, for each game:
- the ROM image byte-identical to what MAME feeds each chip;
- the picture pixel-identical on frozen moments of the game (16 NBA Jam,
14 Tournament Edition); - the CPU identical, instruction by instruction, for ~69 million
instructions from power-on; - Tournament Edition's copy protection: all 768 accesses of its boot
identical to MAME's; - sound as loud as MAME's, second by second, across every sound command;
- timing met at 96 MHz.
On hardware: a fast memory mode that garbled colours (reads), a self-test that
overwrote the sound CPU's start address, and frame drops in Tournament
Edition's busiest scenes, each found on a Pocket and fixed. The full story is
in BUILD_LOG.md.
Credits
MAME's midtunit driver (Alex Pasadyn, Zsolt Vasvari, Ernesto Corvi, Aaron
Giles); jt51 and jt6295 by Jose Tejada; the MC6809 core by Greg Miller; the
Pocket platform and build image by Marcus Andrade (OpenGateware); the Smash TV,
S.T.U.N. Runner and Pleiads Pocket cores it grew from. See CREDITS.md.
NBA Jam for Analogue Pocket v0.2.0
NBA Jam for Analogue Pocket — 0.2.0
Midway's T-unit arcade board as an openFPGA core, now running both NBA Jam
(1993, rev 3.01) and NBA Jam Tournament Edition (1994, rev 4.0 3/23/94).
Tested on a Pocket: picture, sound and smooth play in both.
New in 0.2.0
- Tournament Edition. Pick the game from the list when the core starts;
the core recognises which one it was given from the ROM itself. Each game
keeps its own settings and high scores. - Smoother play. Busy scenes (a basket in view) no longer drop frames:
the video memory now writes at full rate. - Controls laid out like the arcade panel (from 0.1.1): Y turbo, X shoot,
A pass; B is a second pass and R a second turbo. - Settings and high scores kept: service-mode settings, audits and high
scores are saved to the SD card per game
(Saves/nbajam/plasticbugs.nbajam/nbajam.sav,nbajamte.sav) and loaded
back when the core starts. - The platform image, correct game details (Midway, 1993), and the
diagnostic items gone from the menu.
Installing
-
Unzip onto the root of the SD card (
Cores/,Platforms/,Assets/).
Coming from 0.1.x, replace everything; the game list is new. -
Build the ROM images from your own MAME romsets — no ROM data is
included, and none ever will be:python3 mra_build.py nbajam.mra nbajam.zip # md5 b6a0b85732103ba8ec4fa6a65ddd2c32 python3 mra_build.py nbajamte.mra nbajamte.zip # md5 1ae1931e7073e9131c9c9336bc6b0fdc -
Put them in
Assets/nbajam/common/(nbajam.rom,nbajamte.rom).
On the very first start each game says "CMOS INVALID -- FACTORY SETTINGS
RESTORED": press any button. That is the arcade's own behaviour with a blank
settings memory.
Controls
Laid out like the arcade panel (Turbo, Shoot, Pass from left to right):
Y turbo, X shoot / block, A pass / steal; B is a second pass, R a second
turbo; Select coin, Start start.
Menu
Free Play, Cabinet (2 or 4 player), Attract Video Clips (NBA Jam only),
and Service Switch + Reset Core for the game's own test menu.
Known limits
- When the game clears a whole screen with its CPU (scene changes such as the
tip-off) this core takes about three frames where the arcade takes one, so
those moments hitch briefly. - Players 3 and 4 are not wired.
- A game never replays exactly like MAME's: NBA Jam takes its random numbers
from the video beam's position, as the arcade did.
How it was checked
Against MAME 0.288, for each game:
- the ROM image byte-identical to what MAME feeds each chip;
- the picture pixel-identical on frozen moments of the game (16 NBA Jam,
14 Tournament Edition); - the CPU identical, instruction by instruction, for ~69 million
instructions from power-on; - Tournament Edition's copy protection: all 768 accesses of its boot
identical to MAME's; - sound as loud as MAME's, second by second, across every sound command;
- timing met at 96 MHz.
On hardware: a fast memory mode that garbled colours (reads), a self-test that
overwrote the sound CPU's start address, and frame drops in Tournament
Edition's busiest scenes, each found on a Pocket and fixed. The full story is
in BUILD_LOG.md.
Credits
MAME's midtunit driver (Alex Pasadyn, Zsolt Vasvari, Ernesto Corvi, Aaron
Giles); jt51 and jt6295 by Jose Tejada; the MC6809 core by Greg Miller; the
Pocket platform and build image by Marcus Andrade (OpenGateware); the Smash TV,
S.T.U.N. Runner and Pleiads Pocket cores it grew from. See CREDITS.md.
NBA Jam for Analogue Pocket v0.1.0
NBA Jam for Analogue Pocket — 0.1.0
The first release: Midway's 1993 NBA Jam arcade board (the "T-unit") as an
openFPGA core, tested on a Pocket with picture and sound correct.
Installing
-
Unzip onto the root of the SD card (
Cores/,Platforms/,Assets/). -
Build the ROM image from your own MAME
nbajamromset — no ROM data is
included, and none ever will be:python3 mra_build.py nbajam.mra nbajam.zipThe result must have md5
b6a0b85732103ba8ec4fa6a65ddd2c32. -
Put it at
Assets/nbajam/common/nbajam.rom.
On the very first start the game says "CMOS INVALID -- FACTORY SETTINGS
RESTORED": press any button. That is the arcade's own behaviour with a blank
settings memory.
Controls
A shoot, B pass, X / Y / R turbo, Select coin, Start start.
Menu
- Free Play, Cabinet (2 or 4 player), Attract Video Clips.
- Service Switch + Reset Core: the game's own test menu.
Known limits
- Players 3 and 4 are not wired.
- A game can never replay exactly like MAME's: NBA Jam takes its random
numbers from the video beam's position, as the arcade did. - Saving of settings and high scores to the SD card is in, not yet confirmed
on hardware.
How it was checked
Against MAME 0.288:
- picture pixel-identical on 16 frozen moments;
- the blitter's video memory identical after 2,080 drawing jobs;
- the CPU identical, instruction by instruction, for 69.6 million instructions;
- sound as loud as MAME's, second by second, across every sound command;
- timing met at 96 MHz.
The first hardware build found two faults simulation could not: a fast memory
mode unreliable on the board, and a power-on self-test that overwrote the
sound CPU's reset vector. Both are fixed here. The full story is in
BUILD_LOG.md.
Credits
MAME's midtunit driver (Alex Pasadyn, Zsolt Vasvari, Ernesto Corvi, Aaron
Giles); jt51 and jt6295 by Jose Tejada; the MC6809 core by Greg Miller; the
Pocket platform and build image by Marcus Andrade (OpenGateware); the Smash TV
and S.T.U.N. Runner Pocket cores it grew from. See CREDITS.md.
Package revision
The zip was replaced on 2026-09-24 to add the platform image and take the
diagnostic items off the menu. The bitstream is unchanged, the one tested on
hardware (md5 05629f94f775fc5f4a3e03e8254fe5d3); the definitions come from
commit f157e0d, later than the tag, which differs only outside the gateware.