This patch will make happier the environments that do not know that
"still reachable" and "leaked" are not the same thing and that exit()
is a _very_ good deallocator.
assumption that all device tags are unique. Specifically, the
following no longer need to provide a device type:
AM_DEVREAD/WRITE
DEVCB_DEVICE_HANDLER
devtag_get_device
devtag_reset
device_list_find_by_tag
as well as several device interfaces that referenced other devices.
Also fixed assertion due to overflow in the recent sound fix.
- qix
- mcr/williams
- coinmstr
- funworld
- goldnpkr
- jokrwild
- nyny
- r2dtank
- spiders
- tugboat
Added new function memory_install_read_port_handler() to more
easily allow you to install read handlers for ports based on tag.
Removed input_port_read_handler8/16/32/64 functions, since they
were really only used for getting a memory handler for a port by
tag, and this is no longer necessary.
Moved input port handlers to internal code in the memory system.
Added port names to the taito8741 device pending its proper
devicification.
Removed all remaining uses of input_port_n_r() functions, and
purged them from src/emu/machine/generic.
Thanks to Haze finding it was used in qrouka, here is the final
system24 linescroll mode.
Guru, it would be nice if you could check if the effect on the title
screen is correct (the wobbling when the name goes back up). It looks
correct though.
OG.
Joker Poker (Version 16.03BI) [Jim Stolis] (not working)
just adding it so that it doesn't get lost in the backlog. inputs don't work, reports 'error' on first boot but you can reboot it.
not sure about the version numbering, the startup text seems to indicate the roms might be 85/86, but the copyright text is 83.
does anybody have a good reference for the colours on these things? I doubt it can be too hard to fix them..
compilation:
- new option CPP_COMPILE to trigger this (off by default)
- split CFLAGS into common, C-only, and C++-only flags
- when enabled, CPP_COMPILE causes 'pp' to be appended to
the target name
NOTE THAT THE SYSTEM CANNOT ACTUALLY BE COMPILED THIS WAY
YET. IT IS JUST AN EXPERIMENT.
Modified lib.mak to always build zlib/expat as C regardless
of CPP_COMPILE.
Modified windows.mak to fix warnings with MAXOPT=1, and to
leverage the new CFLAGs definitions.
Modified vconv.c to do appropriate conversions for new C++
options.
Updated sources so that libutil, libocore (Windows), and
libosd (Windows) can be cleanly compiled as C or C++. This
was mostly adding some casts against void *.
Fixed a few more general obvious problems at random
locations in the source:
- device->class is now device->devclass
- TYPES_COMPATIBLE uses typeid() when compiled for C++
- some functions with reserved names ('xor' in particular)
were renamed
- nested enums and structs were pulled out into separate
definitions (under C++ these would need to be scoped to
be referenced)
- TOKEN_VALUE cannot use .field=x initialization in C++ :(
- Added a VERY preliminary simulation of the protection, just enough to get the game to boot, not make it playable
- Corrected CPU communication, IRQ/NMI generation etc.
- Fixed some video emulation issues (added tilemap scroll etc.)
- Corrected GFX rom loading (at least for the graphics used in attract mode)
OK, here we go so far. Layouts for all the games that have a simple one-input shifter. Except
Turbo, because I'll need to update the whole file, which will take a little more work.
And below is the rest of the games that have shifters, but use a separate input for each gear,
so something different will need to be done.
There are also six games that use a simple shifter, but the button isn't set to toggle. So to
play the game, you hold the button for low gear, then let go for high gear. Not sure if you
wanted to change these or not, so I just included the layout file for now.
Games to update for PORT_TOGGLE
buggychl - src/mame/drivers/buggychl.c
chasehq - src/mame/drivers/taito_z.c
contcirc - src/mame/drivers/taito_z.c
sci - src/mame/drivers/taito_z.c
roundup5 - src/mame/drivers/tatsumi.c
superchs - src/mame/drivers/superchs.c
* separated amplifier Cin from mixer
* AY8910s numbering now in line with schematics
* Scramble sound not yet perfect, but levels improved significantly, Filters are difficult to model
Sent: Wednesday, February 25, 2009 5:20 AM
To: submit@mamedev.org
Subject: CIA update
Hello,
this patch adds support for the /PC output pin to the CIA emulation.
From the datasheet "/PC will go low for one cycle following a read or write of PORT B.".
This is needed for centronics printer emulation on the MESS side, but I imagine it would
simplify/correct the emulation in some MAME amiga drivers as well (mquake.c for example).
--Dirk
Sent: Sunday, February 22, 2009 10:57 PM
To: submit
Subject: fix for MT02943
Fixed mjelctrn DSW read handler to agree with new tags.
Best regards,
Fabio Priuli
Sent: Saturday, February 21, 2009 6:00 PM
To: submit@mamedev.org
Subject: Super Triv III redump
Here's a new dump of Super Triv III. The only needed rom in this zip is triv3.u36, it replaces the bad rom from the previous dump (it was using a rom from Super Triv II).
3 of the question roms were slightly different from the last Super Triv III dump (see romident_romcmp.txt in the zip). I suspect they are bad in my dump because they create some garbage/nonsense for their categories in the game when I tried them. I included all the rom dumps in the zip in case someone wants to take a closer look at them but I didn't use any of the likely-bad roms in the diff for supertr3, I just replaced the missing rom at u36 and the game looks correct now.
The prom at u17 was marked as bad_crc. Guru dumped it from this board (I sent it to him a few months ago) and it matches the bad_crc so I removed the flag. Same goes for statriv4, we have verified that it's the same crc on a real board so I removed the flag. I think the bad_crc flag needs to get removed from all the proms in this driver and just replaced with a comment that there is only a very small chance they are bad.
Smitdogg
Sent: Sunday, February 22, 2009 7:06 AM
To: submit
Subject: fix for MT02920
another small fix. it's very nice to finally have tags passed to device interfaces, despite the few regressions that can have been introduced in the update :)
Regards,
Fabio Priuli
Sent: Monday, February 16, 2009 7:10 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add some missing static qualifiers
Hi mamedev,
This patch mostly adds missing static qualifiers, plus a few related header/name adjustments. In particular, I tackled m68kmake.c and tmsmake.c which exposed a fair amount of dead code.
~aa
Sent: Monday, February 16, 2009 1:03 PM
To: submit@mamedev.org
Subject: Speed up 'src\mame\video\mcatadv.c'
Hi,
here is a patch against 'src\mame\video\mcatadv.c'
This patch moves a call to 'memory_region' outside of a hot loop in the 'draw_sprites' function.
This gives a fiew pourcents speed up in games such as 'nost'.
Hope this helps,
Best regards,
Christophe Jaillet
--
From: Christophe Jaillet [christophe.jaillet@wanadoo.fr]
Sent: Monday, February 16, 2009 1:53 PM
To: submit@mamedev.org
Subject: Another speed up in 'src\mame\video\mcatadv.c'
Hi,
here is a patch against 'src\mame\video\mcatadv.c'
This patch , by re-arranging the code, give a +/- 5% speed up in the emulation.
Before, we :
- fetch a pixel,
- make some computation for lower/higher part of it
- check if we should render it
- test for priority
- update destination if necessary
With this patch, we check priority first in order to avoid useless processing and testing on pixel that can't be displayed due to priority reason. So in the best case, it is faster, in the worse case execution time should be more or less the same because :
if ((drawxpos >= cliprect->min_x) && (drawxpos <= cliprect->max_x) &&
pix)
is likely to be true (IMO). So the same tests are performed, only the order is different.
Hope this helps,
Best regards,
Christophe Jaillet
--
From: Christophe Jaillet [christophe.jaillet@wanadoo.fr]
Sent: Monday, February 16, 2009 1:09 PM
To: submit@mamedev.org
Subject: Clean up of 'src\emu\tilemap.c' (with the patch...)
Hi,
here is a patch against 'src\emu\tilemap.c'
This patch removes a variable called 'original_cliprect' from the top of 'tilemap_get_tile_flags'.
This variable is useless because all cases that need it, already make the same copy in a variable with the same name, shodawing the former one.
Hope this helps,
Best regards,
Christophe Jaillet
02938: mblkjack: Black Jack (Mirco) is actually Called 21 and the year is 1976.
02939: gp98: Year and manufacturer are 1998, Romtec Co. LTD according to the title screen
02955: parentj: Year is 1989 according to the title screen
02952: nss_sten: Year is shown on title screen as 1991
02951: vgoalsoc, vgoalsca: The year is 1994.
02958: magictg, magictga: The year is 1997 according to flyer
02950: bestri: Year of release is 1998
02949: chocomk: Year is 2002 and the manufacturer is Ecole Software
---------------------------------------------------
Makaijan [Yasuhiro Ogawa]
======================================================================================
In default mode the text gfxs overwrites the title screen when you put bets, is it correct?
(Notice that you should modify the bet button to try it because it's mapped at 2 as the start 2p button, it's a known MAMEtesters bug).
to names that capture the device type as well. Added validity
checks for the short-term to prevent the continuance of this
pattern (which I started :)
Changes:
CPU/"main" -> "maincpu"
CPU/"audio" -> "audiocpu"
CPU/"sound" -> "soundcpu"
SCREEN/main -> "screen" (since it's the only one)
Eventually, devices will be required to have unique tags within
a machine, regardless of type.
-----
Automat (bootleg of Robocop) [Andrew Welburn, Philip Bennett, David Haywood]
this is a heavily modified bootleg of Robocop. Phil hooked up some sound stuff, and I've got the graphics decoding sorted out.
the tilemap transparency handling is different to the original, as are the sprites, this will need a significant amount of work
one of the sprite roms is bad, but it looks like it should be possible to reconstruct it correctly from the main set.
Sent: Sunday, February 22, 2009 8:17 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Fix 02927: Many Sets using segaic16.c: Crash/Freeze while starting
Hi mamedev,
My multisession fix for fd1094 inadvertently dropped a call to memory_configure_bank that I wrongly thought was unnecessary.
Reverting that part of the change seems to fix this bug.
~aa
New games added or promoted from NOT_WORKING status
---------------------------------------------------
King Derby [Stefan Lindberg, Andrew Gardner, Angelo Salese, Roberto Fresca]
---------------
Gals Panic S3 [Uki, David Haywood] (see http://mamedev.emulab.it/haze/ for details)
(and also renamed a few sets, but mainly doing this so that the credit is right, as Yasu said to credit Uki instead)
----------------------------
Gals Panic S3 [Yasuhiro Ogawa, http://mamedev.emulab.it/haze/ ]
I'd rather be credited with a link to my page than my name, as it allows me to provide further details on what was added.
------------------------------------
King Derby? [Stefan Lindberg, Andrew Gardner, Angelo Salese, Roberto Fresca]
======================================
aka the original "Cow Race", made by Tazmi in 1981 -> http://mamedev.emulab.it/kale/fast/files/0000(183371730).png
HW is pretty much hellish...
Some of these sets might not be available, they're based off operator manuals, so should be accurate. The sets which are not available will be disabled once it's been firmly established exactly which ones they are I'm not 100% sure.
No credit wanted / anonymous submission
================================================================
My guess is that the tilemaps of this HW doesn't wrap-around at all, the rowscrolled tiles are supposed to go outside of the screen,
but the limited area of the tilemaps (512x512) makes them to write inside of the screen again.
I've seen that the Punch-Out driver has tilemap_draw_roz hooked up for remove the wrap-around,
but isn't better to tie the wrap-around to a enable/disable flag?
------------------------------------
Gran Tesoro? [f205v]
===========================
Yes, there's really a gambling game running on Gaelco 2 HW with the Dallas CPU as protection...
(plus this pcb has a faulty program rom so it doesn't even boot at the moment)
The program seems original from Novomatic, while gfx seems to be taken from a bootleg. This set hasn't any text scroll in the attract, and has some new additions: Analysis page in operator/supervisor mode, Min-Max bet, and a kind of 3-strings password given in supervisor mode.
New clones added
----------------
American Poker II (iamp2 v28) [Roberto Fresca]
Not Working: Currently stalls with "Invalid MC6845 screen parameters - display disabled!!!"
New clones added
----------------
Pit Boss (Set 3) [Brian Troha]
This was primarily added to allow for sound routes to be supported in a way that
is compatible with the current driver structure. A device can now define a
DEVICE_CUSTOM_CONFIG callback which is called whenever one of the
MCONFIG_TOKEN_DEVICE_CONFIG_CUSTOM_* tokens is encountered. A special token
MCONFIG_TOKEN_DEVICE_CONFIG_CUSTOM_FREE is defined to clean up memory allocated
and/or reset the custom configuration, and is called when the device is torn down
to allow for memory cleanup.
Reimplemented the sound routing using this new mechanism.
Sent: Thursday, February 12, 2009 2:09 PM
To: submit@mamedev.org
Subject: Avoid allocation of 1 Mo in deco_mlc + various clean-up
Hi,
here is a patch against 'src\mame\video\deco_mlc.c'
This patch mostly comments out useless code.
1) IMO, the most important part is :
+// temp_bitmap = auto_bitmap_alloc( 512, 512, BITMAP_FORMAT_RGB32 );
This bitmap is not used any more, but still present in comments and in UNUSED_FUNCTION. This saves more or less 1 Mo of allocated but never used memory.
2) change a set of a sequence of 'if...' with an equivalent 'sect_rect'
3) The other changes are really minor and mostly cleanup of what looks like useless code.
The patch have been tested with skullfng.
Hope this helps,
Best regards,
Christophe Jaillet
Sent: Wednesday, February 04, 2009 8:12 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] 02872: smgp, outrun: Multisession crash going from smgp to outrun
Hi mamedev,
This patch fixes 02872. The change is to ignore decryption during init, since the coding pattern in the drivers is to init the memory map before configuring decryption. I tried to change the order instead but had problems with fd1089 drivers, so this seemed to be the least risky fix. I also fixed a potential multisession bug in segaic16_compare_timer_init while I was at it.
~aa
Sent: Sunday, February 01, 2009 1:13 PM
To: submit@mamedev.org
Subject: safarir
Changes safarir CPU to 8085A, the disassembly has 8085A-specific code that an 8080 can't execute.
Sent: Wednesday, January 28, 2009 2:29 PM
To: submit@mamedev.org
Subject: Fixed hanaawas input and other
Fixed input in hanaawas (note: for the second playere used mahjong input like A,B,C....), also fixed yes/no button in hanaroku.
Bye Sonikos
Sent: Thursday, January 29, 2009 4:24 PM
To: submit@mamedev.org
Subject: Small patch for a contional dipswitch
Moved source comments of conditional dipswitch names into PORT_CONDITION marcos for better documentation.
uRebelScum
Robin Merrill (urebel@usa.net)
- Added 3 new machine drivers for the different Amcoe games hardware.
- Added OKI M6295 support for speech/sounds to schery97, schery97a, skill98, pokonl97 and match98.
- Fixed sound support to nfb96, nfb96a, nfb96b, nfb96c, nfb96txt, roypok96, roypok96a, roypok96b, nc96, nc96a, nc96b, nc96c, nc96txt, nfb96se, nfb96sea, nfb96seb, carb2002 and carb2003.
- Full inputs & DIP switches from the scratch for pokonl97, match98, nfb96, nfb96a, nfb96b, nfb96c, nfb96txt, roypok96, roypok96a, roypok96b, nc96, nc96a, nc96b, nc96c, nc96txt, nfb96se, nfb96sea, nfb96seb, carb2002 and carb2003. All these were promoted to working state.
- Fixed size and position of tilemaps visible area to match98.
- More driver cleanups.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Poker Only '97 (ver. 3.3) [Roberto Fresca, Olivier Galibert, David Haywood]
Match '98 (ver. 1.33) [Roberto Fresca, Olivier Galibert, David Haywood]
New Fruit Bonus '96 Special Edition (5 sets) [Roberto Fresca, Olivier Galibert, David Haywood]
Royal Poker '96 (3 sets) [Roberto Fresca, Olivier Galibert, David Haywood]
New Cherry '96 Special Edition (5 sets) [Roberto Fresca, Olivier Galibert, David Haywood]
New Fruit Bonus '96 Special Edition (bootleg, 3 sets) [Roberto Fresca, Olivier Galibert, David Haywood]
Carriage Bonus 2002 (bootleg) [Roberto Fresca, Olivier Galibert, David Haywood]
Carriage Bonus 2003 (bootleg) [Roberto Fresca, Olivier Galibert, David Haywood]
New games marked as GAME_NOT_WORKING
------------------------------------
Ciclone [f205v, Mirko Buffoni]
====================================================================
Guess that I should merge the two drivers at this point (brasil.c & highvdeo.c)...
- Full inputs & DIP switches from the scratch for schery97, schery97a, and skill98.
- Changed the sets description to match the program version.
- Cleaned-up the game driver zone for better organization purposes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Skill Cherry '97 (ver. sc3.52) [Roberto Fresca, Olivier Galibert, David Haywood]
Skill Cherry '97 (ver. sc3.52c4) [Roberto Fresca, Olivier Galibert, David Haywood]
Skill '98 [Roberto Fresca, Olivier Galibert, David Haywood]
Please note: regression testing is in progress, but the first round
of glaring regressions have already been taken care of. That said,
there is likely to be a host of regressions as a result of this
change.
Also note: There are still a few rough edges in the interfaces. I
will try to clean them up systematically once the basic system is
working.
All sound chips are now proper devices.
Merged the sound chip interface into the device interface,
removing any differences (such as the whole ALIASing concept).
Modified every sound chip in the following ways:
* updated to match the device interface
* reduced read/write handlers down to the minimal number
* added the use of get_safe_token() for ensuring correctness
* other minor cleanup
Removed the custom sound device. The additional work to just make
custom sound cases into full devices is minimal, so I just converted
them all over to be actual devices.
Vastly simplified the sound interfaces, removing the ghastly
sndti_* business and moving everyone over to using tags for
sound identity. sndintrf, like cpuintrf, is now just a header
file with no implementation.
Modified each and every driver that references a sound chip:
* all memory maps explicitly reference the targeted device via
AM_DEVREAD/AM_DEVWRITE/AM_DEVREADWRITE
* 16-bit and 32-bit accesses to 8-bit chips no longer use
trampoline functions but instead use the 8-bit AM_DEVREAD/WRITE
macros
* all references to sound chips are now done via tags
* note that these changes are brute force, not optimal; in many
cases drivers should grab pointers to devices in MACHINE_START
and stash them away
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Go 2000 [Angelo Salese]
====================================================
Also moved go2000.o to suna.a in the mame.mak, because I believe that should stay there.
Now I'll try to fix the spriteram (even though it seems hard to RLE it, this game hardly uses it)...
New games added or promoted from NOT_WORKING status
---------------------------------------------------
TomCat (prototype) [Mariusz Wojcieszek]
There are still some small issues (complete list in driver), if somebody with more experience with Atari and/or vector hardware wants to take a look, feel free.
* Added complete reel emulation (thanks to Luca, Angelo and David drivers
studied to better understand hardware similarities).
* Press T to toggle amuse game, used to mask gambling activities.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Jackie [Mirko Buffoni]
- Created custom module for run sounds. Running the discrete sound system at 480KHz was not really optimal.
- Reviewed parts list, schematics and pcb pictures
- Brought mario run sound in line with recordings from Smitdogg
- VCO voltage needs to be 0V for this to happen. Verification outstanding
- Capacitors needed some ageing applied as well. To be removed once the VCO issue is clarified.
Not working due to the sound CPU rom is half size and the 16Mbit flash roms are not dumped.
New clones added
----------------
Head Panic (15/06/1999) [Corrado Tomaselli] (not working)
Merging back in the PinMAME drivers is proposed every now and again, and since we've just added other non-video based things I figured that now might be a good time to look at it.
This is likely to be a HUGE undertaking as PinMAME is based on old code, and is Macro-hell, I see it as a several step plan.
1) Convert all the PinMAME drivers to compile their ROM Loading with current versions of MAME
2) Clean up the ROM loading, removing the excessive Macros which really don't help readability at all IMO
3) Hook up the Machine Drivers again for each system, so that the CPU core runs again
4) Look at ways in which the artwork system can be used to simulate the display parts etc. (there is a scary amount of code in PinMAME for handling this stuff)
5) See how feasible it is to allow MAME to communicate with another program, as it's unlikely we'll be able to simulate the full table physics in MAME.
I've updated the System11 rom loading to compile for now. The old PinMAME code which hasn't been updated is there #if 0'd out for reference for when a stab is made at hooking back up the actual CPUs to run etc.
Part of me wonders if just rewriting it from scratch would be easier, but it would be a shame to throw away the information that was figured out in PinMAME.
This was done by request, so I'm not especially bothered if it doesn't get included, PinMAME is rather hideous ;-)
If anybody wants to help they're more than welcome. The other Williams systems should be easy to hook up the rom loading for because they share most of the Macros that have already been updated to compile.
---
Pyschic 5 (set 2) [Dazzer]
I haven't checked the differences in any detail, but the player appears to survive for longer in attract mode so there are probably some subtle gameplay differences.
* Added because 3 Super 8 have SUPER POKER 115IT string inside.
3Super8 may be a hack, strings are the same, but code is different
though still partially encrypted
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Draw Poker [Angelo Salese]
==========================================
For "work-around for the rng" I mean that I've mame_rand'ed it, but obviously that isn't accurate.