Added hardware and tech notes.
New games marked as GAME_NOT_WORKING
------------------------------------
Four Roses (encrypted, 2 sets)[Roberto Fresca]
- Completed normal Inputs/Outputs.
- Added button-lamps calculation.
- Created button-lamps layout.
- Documented the PCB RAM.
- Fixed NVRAM size based on PCB picture (2x CY62256L-70PC near the battery).
- Added notes about the method to make appear the real poker cards.
- Fixed the OKI 6295 frequency (1000 kHz resonator near). Now the game has more decent sounds.
- Corrected CPU clock to 12 MHz. (main Xtal).
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Millenium Nuovo 4000 [David Haywood,Angelo Salese]
New games marked as GAME_NOT_WORKING
------------------------------------
Il Pagliaccio [David Haywood,Angelo Salese]
- Changed the driver name to goldnpkr.c (Golden Poker is the most representative hardware).
- Splitted the PIA interfases to cover witchcrd/pottenpkr connections.
- Fixed the witchcrd/pottnpkr/sloco93 double up mode.
- Replaced the pottenpkr layout with goldnpkr one in all Jack Potten's Poker sets.
- Updated game notes for Witch Card and Super Loco 93 sets.
- Fixed al inputs & lamps to allow double up mode to the above games.
- Added Witch Card (Video Klein) but still not working.
- Added several Buena Suerte! sets.
- Added new games: Maverik, Brasil 89 & Poker'91.
- Reworked the sets parent-clone relationship (still in progress).
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Maverik [Roberto Fresca]
Brasil 89 [Roberto Fresca]
Poker'91 [Roberto Fresca]
New clones added
----------------
Buena Suerte (21 new sets) [Roberto Fresca]
Royalea [Roberto Fresca]
New games marked as GAME_NOT_WORKING
------------------------------------
Witch Card (Video Klein) [Roberto Fresca, Guru]
I won't be writing this driver, it fits somewhere between System21 and System22, with multiple PCBs etc. I just created this to document what we know so far. Chances are Phil or somebody with good Namco knowledge will have to emulate it.
Sent: Sunday, November 23, 2008 12:17 AM
To: submit@mamedev.org
Subject: Oki MSM6258 ADPCM core
Hi,
I have attached the Oki MSM6258 ADPCM sound core, which is intended for
use with the MESS Sharp X68000 driver. This code was written by Phil
Bennett, so he ought to be the one getting the credit for it. I have
mostly worked on the MESS X68000 driver and HD63450 (DMA controller)
code to get the ADPCM working for most X68000 software. I am unaware as
to if Phil has already submitted this or not yet.
I've tested compiling and running MAME itself (including a debug build)
with the MSM6258 core in it, and experienced no issues. Although there
is nothing in MAME to test it specifically with, it doesn't cause any
problems with MAME use in general.
The current MESS X68000 driver code with the MSM6258 enabled is
available for those that want to test that out -
http://mahlemiut.marpirc.net/msm6258-211108.zip
Thanks,
Barry Rodewald
mailto:bsr@xnet.co.nz
This more accurately describes the aux board behavior for Ms. Pac-Man. There
is a thorough description of how the board works. mspacman is a more faithful
emulation. In particular you can now enter service mode (F2) at anytime during
game play.
H8:
- Added support for 8-bit H8 family MCUs, starting with the H8/3344
- Pointer-ified all H8 cores
- Some cleanup and renames toward additional future work
System 23:
- Added extremely preliminary support for I/O boards with the H8/3344
- Added new game: Motocross Go! (MG3 Ver. A) [credit Guru]
into the core proper and removed unused macros. Changed all
external interfaces to pass the CPU device. Enabled 64-bit
operations by default. Re-derived the interface functions to
cascade and share code more aggressively.
These changes also seem to have cured the taito_f3 issues as
far as I can tell (at least pbobble3 seems right now).
related APIs now take a device pointer instead of an index.
All functions that take a CPU device are prefixed with cpu_*
All functions that are globally related to cpu execution
are prefixed with cpuexec_*. Below is a list of some of the
mappings:
cpu_boost_interleave -> cpuexec_boost_interleave
cpunum_suspend -> cpu_suspend
cpunum_resume -> cpu_resume
cpunum_is_suspended -> cpu_is_suspended
cpunum_get_clock -> cpu_get_clock
cpunum_set_clock -> cpu_set_clock
cpunum_get_clockscale -> cpu_get_clockscale
cpunum_set_clockscale -> cpu_set_clockscale
cpunum_get_localtime -> cpu_get_local_time
cpunum_gettotalcycles -> cpu_get_total_cycles
activecpu_eat_cycles -> cpu_eat_cycles
activecpu_adjust_icount -> cpu_adjust_icount
cpu_trigger -> cpuexec_trigger
cpu_triggertime -> cpuexec_triggertime
cpunum_set_input_line -> cpu_set_input_line
cpunum_set_irq_callback -> cpu_set_irq_callback
In addition, a number of functions retain the same name but
now require a specific CPU parameter to be passed in:
cpu_yield
cpu_spin
cpu_spinuntil_time
cpu_spinuntil_int
cpu_spinuntil_trigger
cpu_triggerint
Merged cpuint.c into cpuexec.c. One side-effect of this
change is that driver reset callbacks are called AFTER the
CPUs and devices are reset. This means that if you make
changes to the CPU state and expect the reset vectors to
recognize the changes in your reset routine, you will need
to manually reset the CPU after making the change (since it
has already been reset).
Added a number of inline helper functions to cpuintrf.h for
managing addresses
Removed cpu_gettotalcpu(). This information is rarely needed
outside of the core and can be obtained by looking at the
machine->cpu[] array.
Changed CPU interrupt acknowledge callbacks to pass a CPU
device instead of machine/cpunum pair.
Changed VBLANK and periodic timer callbacks to pass a CPU
device instead of machine/cpunum pair.
Renamed all information getters from cpu_* to cpu_get_* and
from cputype_* to cputype_get_*.
Sent: Friday, November 07, 2008 9:47 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] More header files for mame
Hi mamedev,
Here's another set of about 20 new include files for MAME. As before,
the only issues discovered by the migration were some dead prototypes.
~aa
Sent: Wednesday, November 05, 2008 7:21 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] New include files for drivers
Hi mamedev,
Here's a patch that adjusts a few existing include files, but
principally adds new include files for about twenty existing drivers.
This found a few dead prototypes, but otherwise didn't reveal any
errors.
~aa
* Merged DS5002FP
* Disassembler now uses type specific memory names
* Merged DS5002FP disasm
* added 83C751 memory names to disassembler
* delete DS5002FP specific files
* removed unnecessary cpu callback in wrally
* DATA_MAP ==> IO_MAP in wrally
Ruleta RE-900 from Entretenimientos GEMINI.
Is a roulette game based on i8051 and TMS9928, that has a phisical roulette with leds simulating the ball.
Game is working properly with full sound support.
Need better inputs implementation, leds, external artwork for the roulette and technical notes (I'm taking care of them).
If someone want to give a try, turn the operator key to allow enter credits.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Ruleta RE-900 [Grull Osgo]
Sent: Tue 10/7/2008 10:45 AM
To: submit@mamedev.org
Subject: snes special chips emulation
Hi,
the attached patch adds emulation for snes special chips DSP-2 & OBC-1. Changes:
- added sources snesdsp2.c & snesobc1.c (directly included in machine/snes.c as per Arbee's guidelines). credits mostly goes to byuu, which released to Public Domain his sources
- removed special chips detection from MAME (no nss / bootleg carts have special chips so far) and only left a variable has_addon_chip whose possible values are in includes/snes.h (it is initialized to HAS_NONE for MAME games)
- modified memory handlers to account for the new chips
Regards
Fabio
- Added Baby Poker Game.
- Added sound support to Baby Poker Game.
- Reworked the color routines.
- Added Baby Dado Game.
- Added new color routines for Baby Games.
- Redumped the videocba color PROM.
- Added color switch. (It changes background color in some games).
- Added "hopper full" switch support (for diverter function).
- Added diverter function decoder.
- Added full functional mechanical counters decoding.
- Added 7 Segment decoder and 7 Digit Counter functions.
- Added button-lamps layout & mechanical counters simulation on layout.
Mechanical counters to layout: Coin-In, Coin-Out and Coin to Drop.
- Added NVRAM support to mechanical counters.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Baby Poker [Grull Osgo, Roberto Fresca]
Baby Dado [Grull Osgo, Roberto Fresca]
fine and basic searching/playback/skipping is functional. Still a bit
glitchy.
Firefox improvements:
- removed need for deprecat.h
- memory map is complete from schematics
- gutted laserdisc hacks in favor of actual laserdisc implementation
- fixed all CPU and sound clocks
Removed old laserdsc.c implementation.
Added generic timer devices, which simply allocate a timer but don't
prime it. This is the preferred method for allocating timers, and may
eventually be the only mechanism for doing so in the future.
- Simulated the MCU communication/protection.
The game seems to work properly, but is hard to win.
I conserved the game flags till we have the MCU decapped,
and emulated properly.
- Added full sound support.
- Added lamps support + layout.
- Fixed memory maps.
- Documented Super Derby outputs.
- Added lamps support + layout to Super Derby.
- Fixed the phisical RAM size to all games.
- Fixed the wrong NVRAM size to spacewin (16Kb instead of 16KB).
- Added proper NVRAM to sderby and pmroulet.
- Added the missing 3rd input to pmroulet (needed for 3-button mode).
- Cleaned up the driver.
is either DEVICE_START_OK or DEVICE_START_MISSING_DEPENDENCY. The latter
should be returned by a device if there is another device it depends on
which hasn't been started yet. Added new flag in the device interface to
indicate whether a device has been started.
Changed laserdisc interface to explicitly specify the screen and sound
devices it should route to. Drivers no longer have to manually call
laserdisc_vsync(). Instead, the laserdisc code connects up to the routed
screen device and works based on that screen's VBLANK timing. Removed
all existing calls to laserdisc_vsync().
Changed laserdisc behavior so that it completes the previous video read
and initiates the next read at the end of VBLANK instead of the beginning.
This gives player logic time during VBLANK to alter the slider position
prior to fetching the next frame.
Added new laserdisc callback for vsync begin and changed the update
callback to be called at the end of VBLANK. Also added functions to set
the slider speed, advance the slider, and directly control the video/
audio squelch. In addition, there is a new status function to get the
slider position in general terms.
Added parameter to the VBLANK callbacks supported in emu/video.c. Updated
all callers to provide a callback value.
Fixed bug that would cause watchpoints to trigger if you had a memory
window open to the watchpoint address.
Further updates to the PR-8210 ROM simulation. Still not quite there but
the system is much better understood now. Added layout to the PR-8210
which displays the state of the front-panel LEDs.
- Some corrections to the memory map.
- Added proper working RAM.
- Added Dallas DS1220Y NVRAM.
- Added output port.
- Added lamps layout.
- Added complete inputs.
- Changed description to "Scacco Matto / Space Win" since the default game is Scacco Matto.
You must enter the service mode and change graphics in order to switch the game.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Scacco Matto / Space Win [David Haywood, Roberto Fresca]
- Better structure and organization.
- Added Super Gran Safari.
- Added improved lamps layout to Super Gran Safari and Magic's 10.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Gran Safari [Roberto Fresca]
fixed palette decoding of early SNK games (from marvins to athena + fitegolf). The least significan bits were assigned incorrectly.
merged marvins.c into snk.c, with all resulting fixes (removed hacks, correct shadows, scroll offsets etc)
Each player now gets its own source file, along with new hooks
which enable more precise control over the behavior. Updated the
PR-8210 and LD-V1000 implementations to the new spec. Other
players will come online shortly.
Changed scan behavior so that it requires a constant stream of
signals to continue scanning. Updated ldplayer accordingly.
8 bit latch interface and emulation
Generic emulation of 74LS174/175, 74LS259 and other latches.
Apart from providing synched latch operation, these
latches can be configured to read their input bitwise from other
devices as well and individual bits can be connected to
discrete nodes.
Please see audio/dkong.c for examples.
02136: cubeqst: from minimal UI cubeqst requires the optional CHD
02127: xymg: The game name should be Xing Yun Man Guan and "Pin Yin:"should be omitted
02138: flamegun: Debugger/Cheat System upper case cpu tag of MAIN doesn't work
02139: In audio/system16.c, there is a reference to REGION_SOUND1
02133: chindrah: The title of Zhong Guo Long?(Hong Kong,V011H) is Dong Fang Zhi Zhu(Hong Kong, V011H)
02126: corrupt CHDs are reported as missing
After an exhaustive analysis to the unknown writes, finally figured out the missing sound device.
- Added sound support to "Poker 4-1" and "Pull Tabs".
- Figured out the output ports. Documented each bit accessed.
- Added button lamps support. Created layouts for both games.
- Switched the 8255 port C to be used as output port.
- Adjusted the coin pulse timing.
- Updated technical notes.
- Splitted the driver to driver + video.
- Final clean-up.
TNK3, Athena, Fighting Golf, Country Club
converted to tilemaps
removed hacks
proper memory maps
screen flip / cocktail mode support
dip locations
better implementation of sound CPU communication
hooked sound cpu interrupts to YM chips
fitegolf hax 1xYM3812, not 2xYM3526
My mail is broken (or I'm not on the list anymore?) so I don't know how the suggestion went down, but given that within the space of a week simply updating the tree completely broke my compile again I *need* these files maintained to develop with if we're going to see accurate genesis emulation in MAME. There's too much to split out of MAME.
I haven't included driver definitions, but the source files at least need to compile or I'm going to go completely bananas.
This handler works for both disc-only games and those with overlays.
For disc-only games, the base macro is sufficient. For games with
overlays, an additional set of configuration macros are provided:
MDRV_LASERDISC_OVERLAY - specifies update function, width, height,
and bitmap format of the overlay
MDRV_LASERDISC_OVERLAY_CLIP - specifies the visible area of the
overlay bitmap
MDRV_LASERDISC_OVERLAY_POSITION - specifies default x,y position
MDRV_LASERDISC_OVERLAY_SCALE - specifies default x,y scale factors
The update function provided to MDRV_LASERDISC_OVERLAY is identical to
a normal VIDEO_UPDATE callback, so a standard one can be used. All
existing laserdisc drivers have been updated to support this new
rendering mechanism, removing much duplicated code.
Added the ability to configure the overlay position and scale
parameters at runtime. Added OSD menus to control them. Added logic
to save/restore the data in the game's configuration file.
Added new macros MDRV_LASERDISC_SCREEN_ADD_NTSC and _PAL, which
defines a standard screen with the correct video timing characteristics
and update function for laserdiscs. Updated all drivers to use these
macros instead of defining their own screens.
Added DISK_REGIONS to all laserdisc drivers.
Added DISK_IMAGE_READONLY_OPTIONAL to support games (like Cube Quest)
where the disk is non-essential to the game's operation.
Fixed bug in identifying the custom sound driver for the laserdisc.
Updated ldverify to identify blank regions of the disc for post-
processing.
Fixed rendering 16bpp with alpha using bilinear filters (fixes
screenshots of laserdisc games with overlays).
Included support for parsing .gdi files in chdman. [ElSemi]
Added new driver for Cube Quest. This includes CPU cores for the three
bitslice processors, as well as laserdisc support for the hacked
laserdisc that was used to drive the games.
[Philip Bennett, Joe Magiera, Warren Ondras]
Note that the SHA1/MD5 for the laserdisc will likely undergo at least
one more change before being finalized.
included by generic components in emu/ and thus should have no
dependencies on the MAME code.
Added new target ldplayer, which is based on MAME but serves as
a standalone laserdisc player for CHDs. Right now only the
Pioneer LD-V1000 is connected, and limited commands are available.
Each player type is a driver, so you specify the player type on
the command-line. The driver then opens the first CHD it finds
in your ROM path and uses that as the laserdisc. The intention is
that you specify the -rompath each time on the command-line, so
a typical approach might be:
ldplayer ldv1000 -rompath j:\mach3
where it will pick up the mach3.chd lurking in your j:\mach3
folder. Several basic commands are supported:
Space = play/pause
Alt = toggle frame display
Left = scan forward (when playing) or step forward (when paused)
Right = scan backward (when playing) or step backward (when paused)
0-9 = enter numbers for search
Enter = execute search to frame
---------------------------------------------------
Killer Instinct (SNES bootleg) [Tomasz Slanina]
Final Fight 2 (SNES bootleg) [David Haywood, Tomasz Slanina, Kowal]
New games marked as GAME_NOT_WORKING
------------------------------------
Sonic Blast Man TURBO 2 (SNES bootleg) [Corrado Tomaselli]
tool which walks through either an AVI or CHD capture from a
laserdisc and ensures that there are no anomalies lurking in
the VBI data.
Added new option to chdman, where if you use -createav with
a special filename (either 2:2 or 3:2) it will create a fake
laserdisc files with the equivalent cadence. This can be used
for testing until full captures are available. Most games used
2:2 apart from Dragon's Lair and Space Ace, which were 3:2.
Note that even though these files are essentially blank, they
are Huffman-compressed, meaning that the maximum compression
ratio you will get is 8:1, so they still end up ~5GB.
Moved error strings from chdman.c to chd.c, where they can be
fetched from any caller via the new chd_error_string()
function.
Updated vbiparse to improve Manchester code decoding. It now
assigns a confidence level per bit based on how solid the
data is. Also added a new function vbi_parse_all which parses
the white flag and all three lines of metadata from a
laserdisc frame. It then compares line 17 and 18 against each
other and selects the most likely candidate based on per-bit
confidence and other factors.
Added frame number display to laserdsc.c. It is off by
default, though most players can be configured to turn it on
(not sure if any actually do). It can be manually toggled via
the backslash key during playback.
(roms in current/j/jingbell.zip)
The background (slot reels) is not emulated properly,
hence it's not playable and marked as not working.
New games marked as GAME_NOT_WORKING
------------------------------------
Jingle Bell [Luca Elia]
Like some other Space games (mosaic.c), it is protected by an MCU
that supplies the addresses to jump to.
I've done some basic simulation that at least shows the service mode.
This is a candidate for decapping / trojaning, or for Nicola to examine
like he did with Mosaic ;-)
Note to Guru: u118 is probably bad, it fails the rom test.
New games marked as GAME_NOT_WORKING
------------------------------------
Quiz Punch 2 [Luca Elia]
Roms are in current/g/galaxi.zip.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Galaxi [Luca Elia]
- Pre-defined CPU and SND clocks.
- Switched the color system to RESNET calculations.
- Completed the remaining DIP switches.
- Added lamps support. Created a layout to show them.
- Changes on the interrupt system (need to be verified on the PCB).
- Renamed the graphics regions to more descriptive names.
- Corrected the manufacturer's name.
- Splitted the driver to driver + video.
- Updated technical notes.
- Rewrote core logic, communications, and interfaces.
- Added three parallel memory moves to the disassembler.
- Initial interrupt logic in place.
Plygonet.c updates.
- All communication hacks have been removed.
- Memory maps have been temporarily reverted while new DSP56k cpu core catches up.
- All games on all drivers should work as before except "colmns97" and "stress" which crash due to sound system trouble.
- All idle skips are still included. They are quite a bit less effective than they were on the interpreter, but they still give a boost.
- Fast RAM bypass is not included yet so this does not represent final performance. That said, it's consistently faster than the interpreter even now. Example: sfiii3 on 0.126 gets 609% on the interpreter and 961% on the DRC.
Major thanks to Aaron for his assistance with several sticky core bugs and other issues encountered writing this.
lurking. If you run into anything odd, please let me know.
Added new module uiinput.c which manages input for the user interface.
The OSD is responsible for pushing mouse events and character events
to this interface in order to support mouse movement and text-based
input (currently only used for the select game menu). Added support
for navigating through the menus using the mouse.
[Nathan Woods, Aaron Giles]
Redesigned the UI menus so that they can maintain a richer state. Now
the menus can be generated once and reused, rather than requiring them
to be regenerated on each frame. All menus also share a comment eventing
system and navigation through them is managed centrally. Rewrote all the
menus to use the new system, apart from the cheat menus, which are now
disabled. Reorganized the video menu to make it easier to understand.
[Aaron Giles]
- Set the proper screen size.
- Decoded graphics.
- Decoded the dual-state color circuitry.
- Mapped the NVRAM, VRAM1-1, VRAM1-2, VRAM2-1 and VRAM2-2 properly.
- Emulated 2x PPI 8255 devices.
- Mapped the 4x DIP switches banks.
- Added PORT_DIPLOCATION to all DIP switches.
- Added DIP switches for 'Bet Max' and 'Limit'.
- Added DIP switches for 'Jackpot' and 'Pay Table'.
- Added the Memory Reset Switch.
- Added the 2nd video & color RAM.
- Added a 2nd tilemap for background graphics.
- Simplified the graphics banks.
- Fixed colors for foreground graphics.
- Fixed visible area to show the top of background graphics.
- Finally fixed colors for background graphics.
- Added all coinage DIP switches.
- Mapped all remaining inputs (service and player buttons).
- Added pulse time limitation to coins A, B & C.
- Switched to use 4x 8255 in replace of 2x 82c255 for I/O.
- Created a handler to feed the z80 port0 requests.
- Promoted lucky74s to 'working' state.
- Added an alternate set, but the program ROM looks like incomplete,
protected or just a bad dump.
- Parent/clone relationship.
- Added technical notes.
From Dox:
- Hooked interrupts.
- Hooked the AY8910 and therefore the NMI trigger.
- Changed the input "Key In" to active high.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Lucky 74 (small) [Roberto Fresca]
New clones added
----------------
Lucky 74 (big) [Roberto Fresca]
macro from the source code. All MAME builds now include
the debugger, and it is enabled/disabled exclusively by
the runtime command-line/ini settings. This is a minor
speed hit for now, but will be further optimized going
forward.
Changed the 'd' suffix in the makefile to apply to DEBUG
builds (versus DEBUGGER builds as it did before).
Changed machine->debug_mode to machine->debug_flags.
These flags now indicate several things, such as whether
debugging is enabled, whether CPU cores should call the
debugger on each instruction, and whether there are live
watchpoints on each address space.
Redesigned a significant portion of debugcpu.c around
the concept of maintaining these flags globally and a
similar, more complete set of flags internally for each
CPU. All previous functionality should work as designed
but should be more robust and faster to work with.
Added new debugger hooks for starting/stopping CPU
execution. This allows the debugger to decide whether
or not a given CPU needs to call the debugger on each
instruction during the coming timeslice.
Added new debugger hook for reporting exceptions.
Proper exception breakpoints are not yet implemented.
Added new module debugger.c which is where global
debugger functions live.
Subject: [patch] Static qualifiers, header file cleanups, and new
include files for MAME
Hi mamedev,
The following two patches improve the use of header files in MAME, and
reduce the number of exported symbols.
The second patch then adds ~30 header files for a number of drivers
that use multiple source files. It consolidated the various cchip
related declarations in cchip.h, and added machine/seicop.h as well.
~aa
Added dumper notes, hardware details and hooked the sound devices.
Moved Euro Jolly X5 to this new driver, and add support for Grand Prix.
New games marked as GAME_NOT_WORKING
------------------------------------
Grand Prix [Roberto Fresca]
(sets uploaded to roms/current)
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Rider (Italy) [Luca Elia]
New games marked as GAME_NOT_WORKING
------------------------------------
Shark Party (Italy) [Luca Elia]
Victor 5 [Luca Elia]
Victor 21 [Luca Elia]
* Wrote new disassembler based on enhanced opcode info structure.
* Moved disassembler into drcuml.c and removed old code.
* Extended disassembler buffer sizes to at least 256 bytes.
- rewrote PowerPC implementation as a dynamic recompiler on top
of the universal recompiler engine
- wrote a front-end to analyze PowerPC code paths and register usage
- wrote a common shared module with C implementations of tricky
CPU behaviors
- added separate CPU types for the variants supported, instead of
relying on a hidden model enum
- rewrote the serial port emulation for the 4xx series to be more
accurate and not rely on separate DMA handlers
- rewrote the MMU handling to implement a software TLB that faults
in pages and handles changed bits appropriately
- implemented emulation of the PowerPC 603's software TLB, which
allows the model 3 games to run without a hack to disable the MMU
Updated the PowerPC disassembler to share constants with the rest of
the core, and to more aggressively use simplified mnemonics, especially
for branches. [Aaron Giles]
Universal recompiler:
- fixed frontend to handle opcode widths different from bus width
- added several new opcodes:
* (D)GETFLGS - copies the UML flags to a destination operand
* FDRNDS - rounds a double precision value to single precision
- renamed several opcodes:
* SETC -> CARRY
* XTRACT -> ROLAND
* INSERT -> ROLINS
- consolidated the following opcodes:
* LOAD?U -> LOAD
* LOAD?S -> LOADS
* STORE? -> STORE
* READ?U -> READ
* READ?M -> READM
* WRITE? -> WRITE
* WRITM? -> WRITEM
* SEXT? -> SEXT
* FTOI?? -> FTOINT
* FFRI? -> FFRINT
* FFRF? -> FFRFLT
- removed some opcodes:
* FLAGS - can be done with GETFLGS/LOAD4/ROLINS
* ZEXT - can be achieved with AND
* READ?S - can be achieved with READ/SEXT
- updated C, x86, and x64 back-ends to support these opcode changes
- updated disassembler to support these opcode changes
MIPS3 dynamic recompiler:
- updated to use new/changed opcode forms
- changed context switch so that it only swaps a single pointer
Konami Hornet changes: [Aaron Giles]
- updated to new PowerPC configurations
- updated some memory handlers to be native 8-bit handlers
- cleaned up JVS implementation to work with new serial code
- added fast RAM for the work RAM to give a small speed boost
Konami GTI Club changes: [Aaron Giles]
- updated to new PowerPC configurations
- updated some memory handlers to be native 8-bit handlers
Konami Viper/ZR107 changes: [Aaron Giles]
- updated to new PowerPC configurations
Sega Model 3 changes: [Aaron Giles]
- updated to new PowerPC configurations
- reimplemented/centralized interrupt handling
- these games are broken for the moment
Fixed crasher due to some Konami games using 8 layers in
the K056832 implementation, even though it was only written
for 4. [Aaron Giles]
Added fisttp opcode to i386 disassembler. [Aaron Giles]
Added all games that fit in this hardware, plus dumper notes (when available) and hardware descriptions.
New games marked as GAME_NOT_WORKING
------------------------------------
Carta Magica (Ver 1.8) [Roberto Fresca]
Laser 2001 (Ver 1.2) [Roberto Fresca]
Magic Drink (Ver 1.2) [Roberto Fresca]
Millennium Sun [Roberto Fresca]
NtCash [Roberto Fresca]
Super Space 2001 [Roberto Fresca]
Unknown italian gambling game [Roberto Fresca]
Wizard (Ver 1.0) [Roberto Fresca]
- Switched the color system to RESNET calculations.
- Hooked the infamous bit7 of Input Port 0x3004 in parallel to DIP switch 1.
This allow to use the PAYOUT button to trigger the Super Game instead of STOP 5.
- Demultiplexed lamps matrix.
- Added lamps support, but is still imperfect.
- Updated technical notes.
> From: deaconblue@worldofretro.net [mailto:deaconblue@worldofretro.net]
> Subject: shuttle invader (shuttlei)
>
> i remember that there was a three coloured pressure-sensitive decal on
> the screen, i mean the monitor itself.
>
> maybe 75 percent was green (the aliens are in "green" status, green
> area), then 10 percent was orange (they come closer, two lines in total)
> and from that below was red, to show up, they as close as they never
> should be (red alert state)
>
> i can't say, how much lines they spend for each color, but i surely
> know, that my memories is very close to that what it was....
>
>
>
> maybe you can use this, thanks in advance for your answer...
>
> Deacon
Subject: saturn CPU patch
Dear MAMEDev,
The attached patch corrects several bugs in the emulation of the saturn
CPU. These corrections are needed to make new HP48 drivers (to be
submitted to MESS imminently) work.
AFAIK, MESS is the only place where this CPU is used, so, the patch
should
not cause any regression in MAME.
The patch is against 0125u1.
Best regards,
-
Antoine Mine
* Input ports are now maintained hierarchically. At the top
level are input ports, which contain a list of fields. Each
field represents one or more bits of the port. Certain fields
such as DIP switches and configuration switches contain a
list of settings, which can be selected. DIP switch fields
can also contain a list of DIP switch locations.
* Normalized behavior of port overrides (via PORT_INCLUDE or
by defining multiple overlapping bits). All fields within a
port are kept in strict increasing bit order, so altered DIP
switches are now kept in the appropriate order. This addresses
MAMETesters bug 01671.
* Live port state is now fully separate from configured
state. This is manifested in a similar way to devices, where
a const list of ports can be managed either offline or live.
Each port has a pointer to an opaque set of live state which
is NULL when offline or valid when live. Each port also has
a running_machine * which is also NULL when offline.
* Because of this new arrangement, the conversion from tokens
to a list of ports now requires reasonably complex memory
allocation, so these port lists must be explicitly allocated
and freed (they are not mantained by automatic resource
allocation).
* Custom and changed callbacks now take a pointer to a field
config instead of a running machine. This provides more
information about what field triggered the change notification.
The machine can be found by referenced field->port->machine.
* The inptport.c module has been cleaned up and many
ambiguities resolved. Most of this is internal, though it did
result in osd_customize_inputport_list() being changed to
osd_customize_input_type_list(). The parameter to this function
is now a linked list instead of an array, and the structures
referenced have been reorganized somewhat.
* Updated config.c to pass machine parameters to its callbacks.
* Updated validity checks, XML output, and UI system to handle
the new structures.
* Moved large table of default input settings to a separate
include file inpttype.h.
* Removed gross hacks in trackfld and hyperspt NVRAM. These
may be broken as a result.
is drcuml.c, which defines a universal machine language
syntax that can be generated by a frontend recompiler and
then retargeted via a generic backend interface to any of
a number of different architectures. A disassembler for the
UML is also included to allow examination of the generated
UML code.
Currently supported backend architectures include 32-bit x86,
64-bit x86, and a platform-neutral interpreted C backend that
can be used as a fallback for platforms without native
support. The C backend also performs additional validation
to ensure assumptions are met.
Along with the new architecture is a new MIPS III/IV
recompiler frontend. This frontend has been rewritten from
the old x64-specific recompiler to generate UML opcodes
instead. This means that the single recompiler can be used
to target multiple backend architectures and should in
theory produce identical results across all of them.
The old 32-bit and 64-bit MIPS recompilers are now officially
retired. The new system provides similar performance (within
5% generally) to the old system and has similar compatibility.
The only currently known issues are some problems with the
two Gauntlet 3D games.
- Properly decoded graphics.
- Proper memory map.
- Added NVRAM support.
- Proper Inputs through 8255 PPI I/O chip.
- Both games are working.
- Added technical & game notes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Card Games? [Roberto Fresca]
Slots Game? [Roberto Fresca]
The key observation was that when decryptiong the second word, both encrypted and decrypted bits of the first word are used.
Many thanks to Javier Valero for the detailed information that made this possible.
* adds a model to calculate mixing of channels with different resistance loads.
* based on above, each channel may be assigned a different load in individual case
i.e. channels not tied together
* rewrote ay8910.c to make emulation simpler
* changed the config structure to include a flag field and output resistor loads.
* Updated all drivers affected.
* Added some "Todos" related to stuff I discovered when reading datasheets.
* Fixed a bug in disc_flt.c (konami filters)
galaxian.c:
* Fixed discrete sound and konami filter addressing
* Changed addressing of AY-3-8910 to be in line with schematics
gyruss.c:
* Added discrete sound for filtering ("konami"-style) and mixing.
Attached is diff which makes Touchmaster games playable.
General changes:
- Added preliminary 68681 DUART (machine\68681.c)
- Moved Microtouch touch screen controller emulation to separate module (machine\microtch.c)
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Touchmaster [Mariusz Wojcieszek]
Touchmaster 3000 [Mariusz Wojcieszek]
Touchmaster 4000 [Mariusz Wojcieszek]
Touchmaster 5000 [Mariusz Wojcieszek]
Touchmaster 7000 [Mariusz Wojcieszek]
Funworld updates:
- Removed the temporary hack to jolyc980.
- Updated technical notes regarding Magic Card II & Jolly Card Professional 2.0.
- Moved snookr10 to its own driver.
- Minor clean-up.
New games marked as GAME_NOT_WORKING
------------------------------------
Apple 10 (Ver 1.21) [Roberto Fresca]
Ten Balls (Ver 1.05) [Roberto Fresca]
Subject: pit8253 device
I have converted the pit8253 implementation into a device. To make it
easier to use I've also created a src/emu/devconv.h in the same style
as src/emu/memconv.h.
I do not have all roms/disk images to test all drivers. I have only
been able to test pf2012, filetto, and topgunnr.
Subject: Internal LAY File - Armor Attack
This is becoming kind of fun. Here's an internal LAY file for Armor Attack.
Re-created the overlay using just rectangles.
And finally got to use flipx and flipy for the first time (main reason I did it).
* Give us a Break [2 sets]
* Ten Up [2 sets]
Neither are playable; they don't register coins for some reason.
2. Fixed interrupt handling and 16-bit memory accessors in 6840ptm.c
Also cleaned up code for the sake of readability.
3. JPM games now have their own object archive file.
for galaxian, scramble, frogger, scobra, amidar, and dambustr.
For the moment, only a subset of games are implemented in the
new system; the remainder are running on the old code.
Main features are accurate video timing, correct stars
implementation, better organization, simplified input ports,
and many other smaller fixes. In addition, the following
MAMETesters bugs are addressed:
- 01598: [Graphics] 4in1, gmgalax, pacmanbl: Sprites are cut off on the top row
- 01563: [DIP/Input] gmgalax: Duplicated Inputs
- 00300: [Graphics] zigzag: in cocktail mode player 2 screen is shift over to the right
- 01454: [Graphics] mshuttle, mshuttlj, mshutlj2: The display of the screen is shifted
- 01473: [Graphics] orbitron: Orbitron graphics not correctly displayed
- 01600: [Graphics] pacmanbl, batman2: The background is shifted to the right and cut off on the right side
- 01602: [Misc.] luctoday: Messed up graphics. (Screen Offset)
- 01599: [Graphics] omega: Screen is vertically offset
- 01605: [Graphics] gteikokb, gteikob2: Wrong screen offset (aaron)
This is still WIP bug I've been working on it for sveral weeks and I want to get it out before leaving for holidays.
- Fixed Alpha 8201/830x MCU simulation.
- all hacks from the equites driver removed
- fixed equites restart position after going underground
- fixed hvolume, splndrbt 2 players
- removed hacks from exctsccr2
- fixed CPU gameplay in shougi
- Gekisou promoted to working
- added dump of Alpha 8201 MCU to games that use it (the ROM isn't used yet, HMCS44 CPU core needs to be written first)
- major cleanup of the mess in equites.c:
- many thanks to Corrado Tomaselli for precious hardware info.
- implemented bg perspective scrolling using PROMs
- fixed sprite flip & disable
- fixed bg color
- converted bg to tilemaps
- fixed fg banking
- fixed screen flip
- removed meaningless banking of player inputs
- added UI adjuster for MSM5232 frequency
- MSM5232 volume control
- fixed MSM5232 noise LFSR formula (done by Jarek Burczynski; thanks to Corrado Tomaselli for samples)
- changed MSM5232 emulator to output channels separately
- added output of SOLO channels to MSM5232 emulator.
- mametesters bugs fixed:
- 00217 splndrbt: On boot the pcb displays a clean light blu screen while in mame there is a black road.
- 00220 splndrbt: Concerning the gfx, on the pcb the background is not linear as shown in mame.
- 00223 splndrbt: On the first level when you pass the asteroid belt the star road should be light blue instead of black like mam
- fixed champbas inputs
- merged talbot with champbas, some driver clenaup
- fixed shougi inputs
- switched exctsccb to use the correct gfx ROMs (matches screenshot found in 01058 exctsccb: Exciting soccer bootleg should be placed in champbas.c.)
- fixed sprite bpp in exctscrr, removed the horrible hacks that were used to fix colors and transparency.
- fixed sound clipping in exctsccr
Subject: patch for SVP (Sega Virtua Processor) emulation
hello,
this patch adds support for Sega Virtua Processor, to run
Genesis/MegaDrive version of Virtua Racing, intended to be used by
MESS. It consists of a CPU core SSP1601, and updates in megadriv.c:
* SSP1601 replaces SSP1610, as it has been confirmed by Stiletto and
other sources that SVP actually contains SSP1601. The current SSP1610
is placeholder only (nearly completely unimplemented) anyway.
* Changes in megadriv.c add a new driver for Genesis/MegaDrive+SVP
combination, also add SVP memory controller logic and memory map.
The diff has already been reviewed by Reip and SSP1610 removal was one
of his suggestions (SSP1610 is not used by any drivers).
This fixes the ape sprite positioning in Crazy Kong -- no more gap between feet and platform
- Merged Yamato driver with Crazy Climber
- XX Mission tilemap conversion
- Removes VIDEO_START(generic) -- no longer used
A lot of sets were added. Also System 903/905 diag ROMs.
Submitted the driver at this point because it's growing as a monster.
Parent/clone relationship for official games is not defined yet.
Changes:
- Renamed the driver to calomega.c.
- Extended the driver to support all the other Cal Omega systems.
- Switched to XTAL def.
- Fixed CPU & sound clocks based on official diagrams.
- Replaced the AY-8910 with AY-8912 to match the real hardware.
- Unified some memory maps.
- Splitted machine in sys903 and sys905.
- Fixed memory map offsets for sys905.
- Added support to the following games:
Game 7.6 (Arcade Poker)
Game 7.9 (Arcade Poker)
Game 9.4 (Keno)
Game 12.5 (Bingo)
Game 12.7 (Keno)
Game 12.8 (Arcade Game)
Game 13.4 (Nudge Bingo)
Game 14.5 (Pixels)
Game 15.7 (Double-Draw Poker)
Game 15.9 (Wild Double-Up)
Game 16.4 (Keno)
Game 16.8 (Keno)
Game 17.2 (Double Double Poker)
Game 17.51 (Gaming Draw Poker)
Game 17.6 (Nudge Bingo)
Game 18.1 (Nudge Bingo)
Game 18.3 (Pixels)
Game 18.5 (Pixels)
Game 18.6 (Pixels)
Game 20.4 (Super Blackjack)
Game 20.8 (Winner's Choice)
Game 22.7 (Amusement Poker, d/d)
Game 23.6 (Hotline)
Game 23.9 (Gaming Draw Poker) --> EX gdrawpkr.
Game 24.6 (Hotline)
Game 27.2 (Keno, amusement)
Game 27.2 (Keno, gaming)
System 903 Diag.PROM
System 905 Diag.PROM
Jackpot Joker Poker (set 1)
Jackpot Joker Poker (set 2)
SSI Poker (v2.4)
SSI Poker (v3.0)
SSI Poker (v4.0)
- Added a list of official/unofficial games, and their states.
- Fixed a bug introduced when extended the color PROM region to eliminate colortable lenght.
- Other changes/fixes.
- Updated technical notes.
tokenizing data structures, as currently used by the input
port system. Redid the input port tokenization to be more
compact and make use of the new macros.
to the sound and CPU interfaces. This is still a bit WIP, but works at
a fundamental level. Currently the only example of usage is in qix.c for
the MC6845 CRTC.
New module: mconfig.c/.h. Moved all machine_config and MDRV_* macros here,
out of driver.c/.h. Added MDRV macros for adding/removing/configuring
devices.
qix.c: Moved video part of machine driver to video/qix.c. Added MC6845
as a device in the machine driver. Removed explicit MC6845 initialization
from VIDEO_START in favor of simply retrieving the token from the device
interface code.
mc6845.c: Updated all callbacks to pass the mc6845_t * object. Updated
all drivers accordingly. Added a minimal device interface.
Deprecated the following constants because global constants that pretend
to document things but which are only guesses are dumb:
- DEFAULT_60HZ_VBLANK_DURATION
- DEFAULT_30HZ_VBLANK_DURATION
- DEFAULT_REAL_60HZ_VBLANK_DURATION
- DEFAULT_REAL_30HZ_VBLANK_DURATION
- DEFAULT_60HZ_3S_VBLANK_WATCHDOG
- DEFAULT_30HZ_3S_VBLANK_WATCHDOG
Updated all drivers to explicitly specify the equivalent bogus times.
Added comments for the "REAL" VBLANK durations to indicate that they are
not accurate.
Since it's an SCSPx2 with ADPCM instead of FM it's already feature-complete except filter envelopes.
A bug in the ARM7 core causes incorrect pan/level values to be computed in e.g. the Naomi SOUND TEST menu (I've also been seeing this in DSF playback). This is not a defect in the AICA.
Please credit ElSemi, Deunan Knute, kingshriek, and myself.
Tried to "unified" the drivers (I still think that some things can be merged).
Added src/includes/iremipt.h source file (same purpose as src/includes/taitoipt.h).
Fixed Dip Switches and inputs for 'alpha1v'. The game is now more playable to me but I left the GAME_NOT_WORKING flag as I think there are still some things to look at).
Each game has 2 68000's, and one unemulated Intel i860XR CPU. I couldn't find docs for the i860 anywhere!
Virtual Combat is a stereoscopic game using an additional i860 to drive the second eye.
The ROMs all seem to check out as valid, with human-readable strings throughout.
The sound program is extremely simple for each, and the sound data ROMs are simply Creative Labs VOC files concatenated to eachother.
A MC6845P lives by the edge connector.
Additional notes in the driver.
Roms uploaded to /roms/current/v & /roms/current/s.
Wiki updated with skeleton driver status.
a new compile-time define (ENABLE_DEBUGGER). This means that MAME_DEBUG no longer means
"enable debugger", it simply enables debugging features such as assertions and debug code
in drivers.
Also removed the various levels of opbase protection in memory.h and always just turned
on full bounds checking.
Fixed build break due to missing ampoker.lay -> ampoker2.lay renaming.
* full memory maps
* partial machine driver removes need for replicating filtering logic
* updated all relevant drivers
Cleaned up Time Pilot and Tutankham drivers:
* correct clocks where possible
* merged memory maps
* fully decoded memory maps
* replaced hacky sprite rendering in Time Pilot with partial updates
* save state support
* removed Power Surge kludge, replaced with unmapped handler control
* Tutankham runs at 60fps, with IRQs every other frame
* Proper IRQ ack in Tutankham
- Tried improving on the ROM mirroring, without any success. Maybe somebody could look into it -- right now it requires all kinds of trickery and even a memcpy ;) All I know is that everything that's there right now is needed otherwise either the game fails the ROM test, or Galaga crashes
Properly tagged m52 and m62 sound boards, plus variants.
Updated all connected drivers.
Merged memory maps.
Proper video timing in 10 yard fight.
Converted troangel to tilemaps.
Moved definitions to header files.
This purely a skeleton driver. Someone who knows anything about the m68k will likely be able to make great progress with this one.
"Galaxy Games" is a trackball-based, cocktail, multi-game cab released in 1998. It has 7 games built into the BIOS, but can also take 4 cartridges. Namco apparently licensed some software to the company who makes it (two player simultaneous Ms. Pac Man - using trackballs?!).
The company's webpage is here: http://www.cesgames.com/
They also have ROMs for their Classic Collection games available for download. There's no information about the Classic Collection hardware, but I'm guessing it's very similar to the Galaxy Games hardware. These can be likely added at a later date.
It looks like the softwarethis.com fellow has a Namco cart, but was unable to dump the ROMs?
BIOS ROMs are uploaded to /roms/g/galgbios.zip and Wiki is updated with skeleton status.
The idea is to create extra work if a driver wants to use these and hopefully
gives an incentive to look for an alternate solution
- Added #include of deprecat.h that rely on these contructs
- Removed a bunch of unneccassary #include's from these files
- correct colors -- in places different from the manual's description, but matches the flyer perfectly
- added speech
- fixed AY-8910 sounds
- odds and ends
- for now, broke Demon Eye X, but I wanted to get this out
- cleaned up and merged ninjakd2, mnight and omegaf drivers into a single driver
- added flip screen support to all games
- fixed sprite overdraw mode:
- ninjakd2 congratulations screen (e.g. stage 3) shows japanese characters which were previously missing
- in ninjakd2, at the beginning of a level items are visible during the initial fade in. I'm not sure if this is correct but the other effects wouldn't work otherwise
- in mnight attract mode, when the big ship is firing the other sprites no longer leave trails
- in mnight at the end of a level the screen is slowly filled with balls and then slowly cleared to begin the following level. Same effect in the death sequence during attract mode.
- added proper computation of sprites to be drawn taking into account double size sprites. This fixes sticking shots in mnight without need for a hack.
- lowered ninjakd2 PCM playback rate to 13020 (from 16000). This seems to sound better and is a round division from one of the master clocks.
- removed ROM patch that was used to avoid the input protection in omegaf, added a rough but effective protection simulation.
- corrected some dip switches
- hooked up sound cpu reset line
- simplified ROM loading for the older games swizzling address lines in driver init.
- added MESS PC-Engine emulatation
- added Blazing Lazers (working)
- added Paranoia (non-working due to lack of jamma interface
emulation)
- fixed MAME debug build under VC2003
Please co-credit Charles MacDonald & Mr. Do for Blazing Lazers.
Note to Nathan: video/vdc.* re taken as-is from MESS, for the
machine stuff I extracted common code (to be shared by MAME and
MESS) and created machine/pcecommn.*
* fixes skychut37b1yel
* fixes skychut37b6gre
* adds samples to ipm invaders - just rename your old invaders samples to ipminvad to test
* added - amongst others - "capsule" dip switch to ipm invaders
* sound ports identified
* demo sound and cabinet type driver configuration
* more I don't remember
* XTAL-based timing
* Correct video timing
* Full memory map
* Correct memory usage ("zero page" RAM is shared with videoram)
* Removed all input hacks
* Fixed interrupt generation
* Connected coin counters
* Added save state support
Also fixed incorrect dependency in cdrom.c.
- fixed mario0110u1gre
- rewrote driver, separate MACHINE_DRIVER(mario_audio)
- palette from schematics
- video timing from schematics
- driver configuration switch Nintendo/Std Monitor
- got rid of COLORTABLE
- clocks as defines in .h
- use XTAL_*
- cvs games: according to PCBInfos speech chip is TMS5100.
Changed driver to use TMS5100 and "game system operational" now sounds more natural
- removed sound/m58817.*
- added support for multiple coefficients maps to tms5110.*
- added coefficient maps for TMS5100 and M58817 from documented sources to tms5110r.c
- fixed interpolation factors (see tms5110r.c for reason)
- made lattice calculation precision 9bit
- added support for READBIT and LOADADDRESS commands to tms5110.c
- more changes in line with various patents
* Cleaned up zeus wave RAM accessors.
* Changed rendering code to allow for greater parallelism on multicore systems.
* Removed some vestigial zeus 2 hacks.
* Reduced visible area to remove artifacts.
* Made right/bottom vertices inclusive to fix some gapping issues.
* Fixed invasn lightgun offset.
* Marked invasn as playable.
Zeus 2 hardware:
* Fixed ROM loading, added banking support.
* Separated zeus 2 video implementation from zeus implementation.
* Implemented direct pixel accesses; enough to get startup screens to show.
ADSP-2100:
* Properly documented ADSP-2104 internal memory map.
Removed many hacks from both.
A couple of games changed status from GAME_NOT_WORKING to fully playable:
stagger1, redhawk, redhawkb, grdnstrm, spec2k, firehawk (all - former afega.c)
and tharrier/tharrierj(nmk16.c)