- use address_maps instead of catch-all handlers;
- implement rd4 and rd5 line views;
- converted a800_rom_williams_device to the new system, make almost every entry in mega* and prisma* SW to actually boot;
- bus/a800: implement maxflash_1mb / maxflash_8mb devices.
* This allows loading arbitrary collection of .xex files built thru Maxflash Cartridge Studio program as flash ROM binaries;
- bus/a800: implement sic_128kb / sic_256kb / sic_512kb flash ROM devices;
- bus/a800: implement ast2k, atrax, Blizzard 32kb, Adawliah, SpartaDOS 128KB, A5200 Super Cart variants;
- bus/a800: implement Super Charger math unit device;
- a800_slot.cpp: fix xegs cart default slot for loose cart loading;
- a800_carts.h: merge a800_turbo64 and a800_turbo128 into single a800_turbo slot option;
- bus/a800/a800_slot: split a5200 to own interface
New working software list additions
-----------------------------------
a800.xml: Maxflash Cartridge Studio - Demonstration Workbook [Atarimax Team], SIC! 31-in-1 Demonstration [SIC! Team]
a800.xml: Atrax 01, Atrax 02, Atrax 03, Atrax 04, Atrax 05, Atrax 06, Atrax 08, Atrax 09, Atrax 10, Atrax 11, Atrax 12, Atrax 13, Atrax 15 [Atarimania]
a800.xml: Prince of Persia (AtariMAX i/f), Prince of Persia (SIC! i/f) [AtariAge]
New software list items marked not working
------------------------------------------
a800.xml: Atrax 14, Atrax 16 [Atarimania], Turbo Hit (Blizzard 32kb) [atari.area]
a5200.xml: Bosconian 5200 - Star Destroyer (Ultimate Version) [AtariAge]
* atari400.cpp: initial split up of different state machines
* atari400.cpp: Fix clang error: misleading indentation; statement is not part of the previous 'if' [-Werror,-Wmisleading-indentation]
* atari400.cpp: virtualize machine_start/machine_reset
* atari400.cpp: isolate m_ext_bank in a130xe_state
* atari400.cpp: bulk replace pokey raw tags into m_pokey
maxaflex.cpp: remove shadowed m_pokey, declared in atari_common_state;
* atari400.cpp: fix a800xl / a130xe self test ROM enabling, fixes Acid800 XL MMU test
* a800.xml: Update Q/A
* atari400.cpp: split a600xl and a1200xl to own state
* atari400.cpp: virtualize PIA portb
* atari400.cpp: use memory_view at 0xd800-0xffff
* atari400.cpp: various a400 and a800 refactoring changes:
- reduce memory maps and configs to bare minimum;
- reduce default RAM options for them and add preliminary options;
- isolate I/O map;
- make sure it unmap_value_high() because otherwise they will crash on non-48K setups;
* atari400.cpp: inherit hw_iomap for a800xl and onward
* atari400.cpp: lower kernel view bound to 0xc000 for a800xl and later machines
* atari400.cpp: remove all _low_r/low_w handlers and replaced with views, fix xegs default boot order (BASIC then game ROM via select key), address code review
* atari400.cpp: fix CI clang failure
* atari400.cpp: fix a1200xl_state calls
* atari400.cpp: hookup option jumpers to a1200xl
* atari400.cpp, gtia.cpp: misc connection notes
* a800.xml: minor bombjake notes
* atari400.cpp: reduce selftest views
* atari400.cpp: better inherit PIA portb mechanics
* atari400.cpp: remove obsolete a600xl_mem fns
* atari400.cpp: emulate extended RAM quirk for a130xe, convert m_ext_bank to address_map_bank_device
Co-authored-by: AJR <ajrhacker@users.noreply.github.com>
- bus/a800: add preliminary Corina ROM cart support;
- bus/a800: bbsb bankswitch works on reads too, makes it playable;
- atari/atari400.cpp: bulk replace cart tags into m_cartleft / m_cartright, move config_ntsc_screen / config_pal_screen to parent state class;
- atari/maxaflex.cpp, atari/bartop52.cpp: convert to screen raw params;
- atari/atari400.cpp: fix a130xe extended RAM out of bounds accesses, fixes t34 after disk swap;
* bus/snes: Fixed address mask error for Soul Blade and Hercules pirate carts. Games run now.
* Marked digimon as not working, hercules and squirrel as partial until further investigated.
* Also tidied a few spots missed in description metadata cleanup.
-a800_flop.xml: Marked Elektra Glide as not working.
New working software list additions
-----------------------------------
Hercules (pirate) [Revenant]
Hercules (pirate, hacked) [Revenant]
The King of Fighters '98 (pirate, hacked) [Revenant]
Marvel Super Heroes Vs. Street Fighter (pirate, hacked) [Revenant]
Squirrel [Revenant]
Squirrel (pirate, hacked) [Revenant]
New NOT_WORKING software list additions
---------------------------------------
The King of Fighters '98 (pirate) [ALMCLE]
Marvel Super Heroes Vs. Street Fighter (pirate) [ALMCLE]
New working software list additions
-----------------------------------
L.A. SWAT + Panther [A8SP]
Turbican [A8SP]
Zybex (Ned) [A8SP]
New not working software list additions
---------------------------------------
T-34: The Battle [A8SP]
Yoomp! [Yoomp Team]
Co-authored-by: 0kmg <0kmg@users.noreply.github.com>
New working software list additions
-----------------------------------
Atari Translator (USA)
Forbidden Forest
Saracen
New not working software list additions
---------------------------------------
Crosscheck
Spitfire 40
* fixed a comment
Co-authored-by: quasiscroto <quasiscroto@users.noreply.github.com>
The free-for-all on labels in software lists is not working. There's no
consistency, labels are getting excessively long, people are starting to
use non-ASCII characters in labels making it harder for others to type
them when manipulating files on the command line, and there's too much
markup being put in labels.
The length limit is 127 characters, same as for labels in MAME itself.
This should be long enough to be descriptive. Remember that the Win32
path limit is 260 characters, and many applications and frameworks have
issues with longer paths, including Windows Explorer and the .NET
framework. Labels are used as filenames, so concessions need to be
made for this.
I have not abbreviated excessively long labels myself - they're
currently causing 135 validity errors. Someone else can fix them.
Printable ASCII characters are allowed, with a few exceptions. The
exceptions are limited to characters most likely to cause issues for
interactive shells and scripts:
* ! - csh event substitution (very difficult to escape properly)
* $ - sh varibale expansion
* % - csh job control, cmd variable expansion
* / - UNIX directory separator
* : - sh path separator, Windows drive qualifier
* \ - sh escape, Windows directory separator
Most of the labels that had to be edited were using ! for markup, or
using ! and % for titles in labels. Strangely, titles in labels are
often forced to lower case, despite this never being enforced for
software lists. There are also various other edits to titles used for
labels, such as moving articles to the end (with or without a comma),
or replacing spaces with underscores. As I already said, there's no
consistency at all.
There is far too much markup in labels. They're even being used for
notes in some cases (e.g. at least one case where a dumper's name is in
the label). The XML schema supports metadata - use it. For example,
you can use part_id for an unrestricted display name for a software
part. You can also use XML comments for notes.
And while on the topic of metadata, vgmplay.xml is putting the same
thing in the part_id as well as the label. The part_id should have
the actual title, not the title mangled to make it more suitable for
use as a filename. Addressing this would be a lot of work, given how
large the file is.
For now, empty data areas in software lists cause a verbose message
rather than a validation warning. There are thousands of software
lists using empty data areas to indicate the size/width of cartridge
RAM/EEPROM/etc.
Get rid of a couple of copies of the CC0 text. Add header comment to
CC0 files to remind people editing them what the terms are. Also add
some missing XML headers. The header comments in layouts won't bloat
the binary - they get stripped out before compressing, same as any other
comments.
This effectively reverts b380514764 and
c24473ddff, restoring the state at
598cd52272.
Before pushing, please check that what you're about to push is sane.
Check your local commit log and ensure there isn't anything out-of-place
before pushing to mainline. When things like this happen, it wastes
everyone's time. I really don't need this in a week when real work™ is
busting my balls and I'm behind where I want to be with preparing for
MAME release.
note, currently only supports .atr format due to image.filetype() not returning anything useful when softlist is used (thanks to micko for advice on various things)
(no credit wanted, this is just to address the 'where is jumpman' thing that was posted on MW and give a softlist entry for regtests on this code)