---------
Double Dribble (prototype?) [Smitdogg, The Dumping Union]
Tetris Plus 2 (Japan, V2.1) [Yohji, Smitdogg, The Dumping Union]
Violent Storm (ver AAB) [Denis Lechevalier]
Black Tiger (older) [David Raingeard]
(Plus implemented some features for nprsp, not worth)
* Added Tenchi wo Kurau (Japan Resale Ver.)
* Confirmed B-Board # for chikij, added ROMs positions, PALs and some
pcb infos to video\cps1.c
* Fixed sf2uk labels and added pcb infos
* Identified and documented willowje as an early and genuine USA release,
added a note and renamed willowje -> willowo
* Verified and fixed XTALs of Japan Resale Versions to work at 12MHz, they
all use DASH A-Boards
* Minor cleanups and fixes
New clones added
----------------
Tenchi wo Kurau (Japan Resale Ver.) [J. Finney, italie, john666, Yohji, Smitdogg, The Dumping Union]
many drivers. Also move some allocated memory into arrays in the
state structure where appropriate (this is still in progress).
Regex'es used (in src/mame only):
state_save_register_global( *)\(( *)([^,]+), *state->([^ )]+)( *)\)
state->save_item\1\(\2NAME\(state->\4\)\5\)
state_save_register_global_array( *)\(( *)([^,]+), *state->([^ )]+)( *)\)
state->save_item\1\(\2NAME\(state->\4\)\5\)
state_save_register_global_bitmap( *)\(( *)([^,]+), *state->([^ )]+)( *)\)
state->save_item\1\(\2NAME\(*state->\4\)\5\)
state_save_register_global_pointer( *)\(( *)([^,]+), *state->([^,]+),
state->save_pointer\1\(\2NAME\(state->\4\)\5,
--------------------
Dream Fruit [Yohji, Smitdogg, The Dumping Union]
(being very busy lately, so if somebody wants to do this be my guest, shouldn't be too hard as the basics are inside Taito L driver ...)
are still intact. The new state_manager class has templatized methods
for saving the various types, and through template specialization can
save more complex system types cleanly (like bitmaps and attotimes).
Added new mechanism to detect proper state save types. This is much
more strict and there will likely be some games/devices that fatalerror
at startup until they are remedied. Spot checking has caught the more
common situations.
The new state_manager is embedded directly in the running_machine,
allowing objects to register state saving in their constructors now.
Added NAME() macro which is a generalization of FUNC() and can be
used to wrap variables that are registered when directly using the
new methods as opposed to the previous macros. For example:
machine->state().save_item(NAME(global_item))
Added methods in the device_t class that implicitly register state
against the current device, making for a cleaner interface.
Just a couple of required regexes for now:
state_save_register_postload( *)\(( *)([^,;]+), *
\3->state().register_postload\1\(\2
state_save_register_presave( *)\(( *)([^,;]+), *
\3->state().register_presave\1\(\2
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Animal Catch [Luca Elia, Gnoppi, john666, Gerald (COY), Smitdogg, The Dumping Union]
Itazura Monkey [Luca Elia, Gnoppi, john666, Gerald (COY), Smitdogg, The Dumping Union]
New games marked as GAME_NOT_WORKING
------------------------------------
Pye-nage Taikai [Gnoppi, john666, Gerald (COY), Smitdogg, The Dumping Union]
Hae Hae Ka Ka Ka [Gnoppi, john666, Gerald (COY), Smitdogg, The Dumping Union]
Taihou de Doboon [Gnoppi, john666, Gerald (COY), Smitdogg, The Dumping Union]
---
Out of whatsnew: please leave the non-working games to me, I'll look at them next.
No-whatsnew explanation: this takes OPTIMIZE=3 compile time for this core from
over 1 hour down to about 2 minutes on PS3 Linux. (Yes, the tms57002 itself
took over an hour to compile before - the thing has 256 MB of RAM and
a very slow HDD so when it hits swap, swap hits back).
Comment: Even though you can play the games, there are so many other issues with unknown errors and graphic problems - might be worth putting in as NOT_WORKING?
timers into the scheduler. Retain TIMER devices as a separate wrapper
in timer.c/.h. Inline wrappers are currently provided for all timer
operations; a future update will bulk clean these up.
Rather than using macros which hide generation of a string-ified name
for callback functions, the new methods require passing both a function
pointer plus a name string. A new macro FUNC() can be used to output
both, and another macro MFUNC() can be used to output a stub-wrapped
class member as a callback.
Also added a time() method on the machine, so that machine->time() gives
the current emulated time. A wrapper for timer_get_time is currently
provided but will be bulk replaced in the future.
For this update, convert all classic timer_alloc, timer_set,
timer_pulse, and timer_call_after_resynch calls into method calls on
the scheduler.
For new device timers, added methods to the device_t class that make
creating and managing these much simpler. Modern devices were updated
to use these.
Here are the regexes used; some manual cleanup (compiler-caught) will
be needed since regex doesn't handle nested parentheses cleanly
1. Convert timer_call_after_resynch calls
timer_call_after_resynch( *)\(( *)([^,;]+), *([^,;]+), *([^,;]+), *([^);]+)\)
\3->scheduler().synchronize\1\(\2FUNC(\6), \5, \4\)
2. Clean up trailing 0, NULL parameters
(synchronize[^;]+), 0, NULL\)
\1)
3. Clean up trailing NULL parameters
(synchronize[^;]+), NULL\)
\1)
4. Clean up completely empty parameter lists
synchronize\(FUNC\(NULL\)\)
synchronize()
5. Convert timer_set calls
timer_set( *)\(( *)([^,;]+), *([^,;]+), *([^,;]+), *([^,;]+), *([^);]+)\)
\3->scheduler().timer_set\1\(\2\4, FUNC(\7), \6, \5\)
6. Clean up trailing 0, NULL parameters
(timer_set[^;]+), 0, NULL\)
\1)
7. Clean up trailing NULL parameters
(timer_set[^;]+), NULL\)
\1)
8. Convert timer_set calls
timer_pulse( *)\(( *)([^,;]+), *([^,;]+), *([^,;]+), *([^,;]+), *([^);]+)\)
\3->scheduler().timer_pulse\1\(\2\4, FUNC(\7), \6, \5\)
9. Clean up trailing 0, NULL parameters
(timer_pulse[^;]+), 0, NULL\)
\1)
10. Clean up trailing NULL parameters
(timer_pulse[^;]+), NULL\)
\1)
11. Convert timer_alloc calls
timer_alloc( *)\(( *)([^,;]+), *([^,;]+), *([^);]+)\)
\3->scheduler().timer_alloc\1\(\2FUNC(\4), \5\)
12. Clean up trailing NULL parameters
(timer_alloc[^;]+), NULL\)
\1)
13. Clean up trailing 0 parameters
(timer_alloc[^;]+), 0\)
\1)
14. Fix oddities introduced
\&m_machine->scheduler()
m_machine.scheduler()
Various MPU4 changes [AGEMAME]:
* Revised timing/input system to stop flickering
* Tidied up the LED drawing code to remove flicker
* Support for all known extenders and reel multiplex boards used in MPU4 H/W
* Partial support for OKI sampled sound card, need for some titles
* Fixed Old Timer characteriser
* Some general tidying up to allow better study of the BwB titles
New games added as GAME_NOT_WORKING:
------------------------------------
Reno Reels (20p/10GBP Cash, release A) [AGEMAME]
BwB Tetris v 2.2 [AGEMAME]
Red Hot Poker (20p/10GBP Cash, release 3) [AGEMAME]