memory consumption when iterating through all drivers like -romident
does.
Also moved softlist scanning into the main loop so that machine_configs
are only constructed once.
=====================
Catch (prototype) [Siftware, hap]
-------
not working flag is because of the broken sound
also, should it be a clone of avalnche?
- Fixed lamp timing in MPU4 and laid groundwork for MPU3 support in the steppers (I've also cleared up the reel code in drivers).
- Removed some unneeded timing code.
- BwB support is here, but preliminary, it's mainly to show people how the CHR chip might work in those games.
- Some sets reparented and renamed as well as a cleanup of source comments:
grindstm (parent), vfive (clone)
kingdmgp (parent), shippumd (clone)
The set formerly known as "sstrikera" is now "sstriker" and is now the parent of mahoudai (clone).
Reverted batrid to batrider and bkraid to bbakraid.
- Put common init code into MACHINE_START, leaving DRIVER_INITs only for games that actually need unique initialization.
- Dead code cleanup: Removed old hacks and some no-longer-used used member variables from the driver class.
- ROM banking cleanup: Added a device address map for the OKI in fixeightbl. Stopped misusing the bank system for memory that isn't actually bankswitched (fixeightbl again) Simplified the Z80 ROM banking (and loading) in the Raizing games.
- Address map cleanup: Unified 8-bit shared RAM handling between the Z80-based and the V25-based games. Replaced lots of pointless READ_HANDLERs with AM_RAM_WRITE. Moved fixeight EEPROM handling into the input ports instead of using READ/WRITE_HANDLERs. Incidentally, this makes toaplan2.c the very first MAME driver to use the AM_READWRITE_PORT macro.
- Removed IPT_VBLANK input ports (no longer used since the video rewrite)
- Removed Truxton 2 player 2 "button 4" (after confirming that the game never reads it) and changed player 1 "button 4" to an IPT_OTHER not bound to any key by default, since it's clearly some kind of test/debug input not meant to be hooked up in a regular cabinet (for one thing, it works whether you're actually playing or in attract mode)
- Added button 3 to Batsugun Special Version. It's a full auto fire button like Cave games have. The service mode input test doesn't show it, presumably because Toaplan didn't bother to update the service mode code from the original version of the game.
- Fixed region jumpers and dipswitches in many sets, based on analysis of the program code and strings in the ROMs.
- Added a #define to optionally make Truxton 2 stereo (commented out by default). See the comments at the top of the driver and in the MACHINE_CONFIG.
- Corrected kbash ROM names, thanks to information from Charles MacDonald. Also fixed inconsistent ROM naming between some of the batrider clones.
- Loaded bbakraid default EEPROM as a ROM rather than hardcoding the contents into the driver.
- Completely removed audio/toaplan2.c, which isn't needed any more now that all the V25s are decrypted and hooked up.
New Clone Added
--------------------------------------
Street Fighter Alpha 3 (Hispanic 980904) [Layne, Dr. Spankenstein, ranger_lennier, Smitdogg, The Dumping Union]
- calculate palette with resnet info from Popper (same year, same company, very similar hardware)
- make bgcolor emulation more logical
- small cleanups
Cleaned up and improved memory maps, added NVRAM
to all winners circle sets, fixed the ay8910 clock
for winners circle 82 type to match the other hardware.
Fixed a blitter buffer to bitmap problem.
Reparented the sets. Added new technical notes.
Input/output work and new set supported.
Redumped the winner82 sound program.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Winners Circle (81, 28*28 PCB) [Roberto Fresca, Rob Ragon]
Winners Circle (81, 18*22 PCB) [Roberto Fresca, Rob Ragon]
memory map, and complete multiplexed inputs/outputs for
Lucky Roulette type games. Also added NVRAM and inverted
blitter [Roberto Fresca]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Lucky Roulette (6-players, Spanish) [Roberto Fresca, Rob Ragon]
accurate periodic interrupt timing for sound CPU, meters,
DIP switches, and other minor things. We got Winners Circle
82 playable. [Roberto Fresca]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Winners Circle 82 [Roberto Fresca, Angelo Salese, Rob Ragon]
functionality in favor of alternate mechanisms. Errors are
now reported via an astring rather than via callbacks. Every
option must now specify a type (command, integer, float, string,
boolean, etc). Command behavior has changed so that only one
command is permitted. [Aaron Giles]
Changed fileio system to accept just a raw searchpath instead of
an options/option name combination. [Aaron Giles]
Created emu_options class dervied from core_options which wraps
core emulator options. Added mechanisms to cleanly change the
system name and add/remove system-specific options, versus the
old way using callbacks. Also added read accessors for all the
options, to ensure consistency in how parameters are handled.
Changed most core systems to access emu_options instead of
core_options. Also changed machine->options() to return emu_options.
[Aaron Giles]
Created cli_options class derived from emu_options which adds the
command-line specific options. Updated clifront code to leverage
the new class and the new core behaviors. cli_execute() now accepts
a cli_options object when called. [Aaron Giles]
Updated both SDL and Windows to have their own options classes,
derived from cli_options, which add the OSD-specific options on
top of everything else. Added accessors for all the options so
that queries are strongly typed and simplified. [Aaron Giles]
Out of whatsnew: I've surely screwed up some stuff, though I have
smoke tested a bunch of things. Let me know if you hit anything odd.
Also I know this change will impact the WINUI stuff, please let me
know if there are issues. All the functionality necessary should
still be present. If it's not obvious, please talk to me before
adding stuff to the core_options class.
New games marked as GAME_NOT_WORKING
------------------------------------
Winners Circle (81) [Roberto Fresca, Rob Ragon]
Winners Circle (82) [Roberto Fresca, Rob Ragon]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Ruleta RE-800 (earlier) [Roberto Fresca]
Ruleta RE-800 (v1.0) [Roberto Fresca]
Ruleta RE-800 (v3.0) [Roberto Fresca, Grull Osgo]
----------------
Big Twin (No Girls Conversion) [Andrew Welburn, Pierpaolo Prazzoli]
uploaded to:
roms\uploads\bigtwinb.zip
if someone wants to write a pcb layout, there's a photo inside the zip
- Horizontal clipping of "tilemap" sprites
- Shadows emulation
sigmab98: added sammymdl BIOS and hardware info [Smitdogg, The Dumping Union]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Reel'N Quake [Luca Elia, Smitdogg, The Dumping Union]
New clones added
----------------
Magic Train (Clear NVRAM ROM?) (not working) [Grull Osgo, Roberto Fresca]
----------------
- Night Rider (rev. 21) [destruk]
- Eight Ball Deluxe (rev. 14) [destruk]
- Lord Of The Rings, The (9,8,7,401)(En,Sp,Ger,Fr,It) [destruk, Miodrag Milanovic]
----------------
- Maverick (Display Rev. 4.00) [destruk]
- Cut The Cheese (Redemption)[destruk]
- Cut The Cheese Deluxe (Redemption)[destruk]
out of log:
Also moved few drivers to proper place
-- out of whatsnew.txt --
* Converted seta2 and signab98 drivers to route both channels to appropriate speakers.
* Besides some slightly-suspect ADPCM2 decoding, the 9810 should be feature-complete
for all games in MAME.
--
Due to updateflip _always_ flipping visarea when flip is set (confusing!), visarea X was flipped twice when globally going from off->on, causing broken cocktail mode in a bunch of drivers (galaga, digdug, warpwarp, ..). This symptom turned up when these drivers were updated with 'raw' screen params, causing visarea-1 != screen width/height due to blanking area info inside width/height.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Brasil 86 [Roberto Fresca, Rob Ragon]
Brasil 87 [Roberto Fresca, Rob Ragon]
Brasil 89 (set 2) [Roberto Fresca, Rob Ragon]
Brasil 93 [Roberto Fresca, Rob Ragon]
[ Out of whatsnew.txt ]
* I haven't implemented stereo yet. Is there an example of a modern sound core
that outputs stereo?
* Also added "MODERN" READ|WRITE handlers to sigma98b & hooked up read function.
* This should make all the games in sigma98b sound perfect (only because
none of them use stereo panning). Luca, I'll leave the flag removal up to your judgement.
* The ADPCM2 decoding in the funcube games sounds pretty good (be sure you're
running at 100% framerate though - they're demanding).
Screen update function is now per screen device
(it was before but was attached to machine driver)
MCFG_VIDEO_UPDATE -> MCFG_SCREEN_UPDATE
MCFG_VIDEO_EOF -> MCFG_SCREEN_EOF
EOF is now executed for all screens, so for all existing it
is defined just for one screen. This part will be updated in future.
Note that there are now screen_update and screen_eof virtual functions
for "modern" drivers which are called same as they did before.
All drivers are updated and in places where update function was separated per
screen I did name separate function.
This change will enable us to put screen definition fully into device.
-------------------------------
Point Blank 3 (GNN2 Ver. A) [Kevin Eshbach, hap, D. Edwardson, Paratech, ranger_lennier, M. Ponweiser, T. Petersen, Smitdogg, The Dumping Union]
Uchuu Daisakusen: Chocovader Contactee (CVC1 Ver. A) [R. Mucciarelli, W. Belk, Yohji, Roberto Malone, Smitdogg, The Dumping Union]
- fixed: if set to invisible(0xff), it could still show (due to 0x100-zoom), showed glitches in eg. koshien
- +12 made no sense, changed to +15 so it just always rounds up if low 4 bits are nonzero
- add note that bigsprite zoom implementation is incorrect
- Instruction cache emulated on '020 and later
- Fixed interaction between MMU and bfextu/bfexts/bfins
- Added fsgldiv, fsglmul, and fscc FPU instructions
- Fixed fault address in stack frame
- Fixed supervisor violation bit in MMU status register
- Add fmovem modes 1 and 3
- Various other MMU fixes
---------------------------------------------------
Guilty Gear X 1.5 [gamerfan, TrevEB, Falcone, M. Viste, john666, Cah4e3, Smitdogg, The Dumping Union]
New games added as GAME_NOT_WORKING
-----------------------------------
Initial D Arcade Stage Ver. 2 (Japan) (Rev. B) (GDS-0026B) [The Dumping Union]
Initial D Arcade Stage Ver. 2 (Export) (GDS-0027) [Gerald, The Dumping Union]
Initial D Arcade Stage Ver. 3 (Japan) (Rev. C) (GDS-0032C) [f205v, The Dumping Union]
removed additional 2 cycles, in move operation, for non-Agnus registers [Roberto Zandona']
set to #0 the start cycle in the copper operation [Roberto Zandona']
- Added IO_SPACE and updated all access in ME1 memory for use it.
- Implemented interrupts.
- Fixed the flags in the ROL/ROR/SHL/SHR opcodes.
- Fixed decimal add/sub opcodes.
- Removed unneeded #include lines (gal3.c galaxold.c asic65.c)
- Split part of the driver include into a separate multi-driver
include file (audio/exidy.h audio/exidy440.h audio/wiping.h
machine/segag80.h)
- Moved code to a new file/include to be referenced in multiple
drivers (ms32crpt.[ch] opwolf.c rainbow.c)
- Duplicated some code (palette related) between drivers (mainsnk
rollrace sslam)
- Moved a driver specific routine to a generic device file (atarimo)
- Cleaned up a few include files (cubocd32 cidelsa metalmx seicross
thoop2).
old: "- 0.129u4: Luigi30 changed Safari Rally CPU to 8085A, the disassembly has 8085A-specific code that an 8080 can't execute."
PCB notes from japump some time after that: CPU:M5L8080AP (mitsubushi i8080A). Stronger proof than a disasm
metro/midcoin/midw8080/midway/msx/namco. [Atari Ace]
Hi mamedev,
More driver_device conversions. I also handled some missed variables
in earlier conversions (bfcobra/cinemat/segas32/taitowlf), and
provided a fix (hopefully correct) for bug "03766: cartfury, roadburn,
sf2049 + clones: Crash before OK" in audio/dcs.c so I could at least
start drivers\vegas.c to check my changes.
~aa
and manages a collection of hashes, and can be built from an internal
format string which is stored with each ROM. All core instances are
cleaned up to use the new interfaces, but it's likely that hashfile
code in MESS will need an update.
Also compacted the form of the hash strings used for ROMs, and fixed
verification/hashing of non-ZIPped files.
[out of whatsnew]
Thanks for the tables, LN. I haven't implemented them exactly as you describe yet, and I may contact you with some questions.
Thanks for hooking up the sound in sigmab98, Luca. They give me a bunch more test cases:
Still missing "straight 8 bit playback" mode.
Still not respecting sample rate.
Still not respecting stereo.
Missing the OPT command.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Hae Hae Ka Ka Ka [Luca Elia, Gnoppi, john666, Gerald (COY), Smitdogg, The Dumping Union]
out of whatsnew: this can be considered as preliminary. things like the empty md_base_state class have been done in purpose to reduce as much as possible changes in machine/megadriv.c (so to avoid overlaps/conflicts with Haze's work on segacd). next steps will start to move megadrive variables to the class.
(no whatsnew from here on)
Only supports Mode 1 and audio tracks right now, and the NRG files must be the
new version output by Nero 5.5 or later. Please send me images that don't
work to improve this.
to pass a core_options object to the constructor, along with
a search path. This required pushing either a running_machine
or a core_options through some code that wasn't previously
ready to handle it. emu_files can be reused over multiple
open/close sessions, and a lot of core code cleaned up
nicely as things were converted to them.
Also created a file_enumerator class for iterating over files
in a searchpath. This replaces the old mame_openpath functions.
Changed machine->options() to return a reference.
Removed public nvram_open() and fixed jchan/kaneko16 to
stop directly saving NVRAM.
Removed most of the mame_options() calls; this will soon go
away entirely, so don't add any more.
Added core_options to device_validity_check() so they can be
used to validate things.
New Clones Added
------------------------------------
Pigskin 621AD (rev 2.0 7/06/90) [Smitdogg, The Dumping Union]
Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 1) [Irongiant]
- Updated all devices containing ROM regions to have short names and all modern devices too
- Created new validation to check existence of short name if device contain ROM region defined
[out of whatsnew]
It sounds ~60% correct, and appears to play the right stuff, but there is still much to do.
I'm not respecting the volume command.
I'm not taking sample rate into account.
I'm not doing anything with stereo yet (though funcube doesn't tickle that functionality).
The ADPCM(2?) decoding clearly isn't perfect (I've made a local copy of the oki_adpcm class to mess around with).
The way i set the clock in the seta2 driver should show I don't know what I'm doing :).
None of the channel flags are being interpreted yet.
I haven't hooked up Luca's sigma98 games yet.