-------------------------------
Truck Kyosokyoku [Guru, R. Belmont, Mr. Do, Kevin Eshbach, www.techknight.com, ranger_lennier, J. Wilke, hack_mole, Gyrovision, Tauchy, K. Fisher, Rambo, The Dumping Union]
So if I read this right, you updated the ASC, then decided to enforce
sound_stream_update() as a pure virtual function, and didn't update the ASC
again? :)
The luminance normalization now converts r,g,b to y,u,v and
normalizes y prior to converting back to r,g,b. This affects e.g. radarscp, dkong and mario drivers. [Couriersud]
Sent: Saturday, January 22, 2011 2:11 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com; Aaron Giles
Subject: [patch] Add driver_device to some Atari drivers
Hi mamedev,
This patch eliminates static/global variables in a number of Atari
drivers by moving them into a driver_device.
~aa
> To: submit@mamedev.org
> CC: atariace@hotmail.com
> Subject: [patch] Cleanup natural keyboard support
> Date: Tue, 14 Dec 2010 07:20:08 -0800
>
> Hi mamedev,
>
> inputx_setup_natural_keyboard sets callbacks from the core into the
> drivers which lack machine or device pointers. This means that
> drivers that use this api can't completely place their state in
> non-global storage. This patch fixes that by adding the machine
> parameter to the callbacks, and places the implementation data into
> input_port_private as well.
>
> This really only affects MESS, since nothing in MAME uses this api.
>
> ~aa
into one file, and separated the speaker device into its own file.
Generalized the concept of dynamically assigned inputs and re-wired the
speaker to work this way, so it is now treated just like any other
sound device. Added methods to the device_sound_interface for controlling
output gain and mapping device inputs/outputs to stream inputs/outputs.
Also made the sound_stream_update() method pure virtual, so all modern
sound devices must use the new mechanism for stream updates.
Primary changes outside of the core are:
stream_update(stream) == stream->update()
stream_create(device,...) == machine->sound().stream_alloc(*device,...)
sound_global_enable(machine,enable) == machine->sound().system_enable(enable)
Beyond this, the patterns are relatively obvious for the remaining calls.
Notes out of whatsnew.txt
* It's sure to have bugs, but it should get the job done for now.
* It's unbelievable how many typos (major or otherwise) docs like this have.
* I haven't heard from s_bastian about making the ROM images available in the
monkey project, but we'll have 'em up as soon as he pops up again.
* Does anyone know of any hardware that incorporated one of these? I'm looking
for things to disassemble in the meantime :).
- SoftList is incompelte, I hate working with the XML, if somebody wants to add the remaining titles, be my guest
- SMS games have issues, the CPU isn't being properly reset (or something) when moving between games, so stick to only a single SMS game for now or the z80 will crash.
It used to work, but the code has been out of use for a while.
- syntax is MAME megatech -cart1 mt_beast -cart2 mt_soni2 -cart8 mt_shar2
Notes out of whatsnew.txt
* This uses modern devices, but has not been tested in a driver yet, so I may
have done something wrong. I will fix it when the time comes.
* 60% of the disassembler is complete. I will finish it over the next few days.
* There are many similarities in execution to the dsp32, and the existing 32 code
will come in handy when it's time to write the execution engine.
* This thing is a pleasure compared to the dsp56k.
* Changed DRHL description to "Drews Revenge (v.2.89, set 1)"
* Added Drews Revenge (v.2.89, set 2). Based on 8080 CPU.
New games marked as GAME_NOT_WORKING
------------------------------------
Drews Revenge (v.2.89, set 2) [Roberto Fresca, Smitdogg, The Dumping Union]
This now has all the stream related code. discrete_device
thus now contains all the generic code and may be used
going forward to implement not sound related use cases. [Couriersud]
- Now supports uPD7725 and uPD96050
- Hooked up SNES common code to use uPD96050 for ST-010/011
- Removed ST-010 HLE simulation
Non-whatsnew: ST-010 is also found in some ssv.c games so this will be
hooked up there soon.
* machine/megadriv.c + md_pcb.c (originally from MESS) -> machine/md_cart.c [since they only contained code to handle cart loading]
* first half of drivers/megadriv.c (the code shared by mtech/mplay/c2 with MESS) -> machine/megadriv.c [since these are the 'machine' functions shared by arcade and console systems]
* second half of drivers/megadriv.c (the part recently imported from MESS) -> it remains where it was [since it is 'driver'-specific, even if in this case it is a MESS driver]
* drivers/segamsys.c (SMS part of the code used for mtech/mplay) -> machine/segamsys.c [again, these are 'machine' functions]
among other things, this new setup makes the MESS-specific parts (machine/md_cart.c & drivers/megadriv.c) independent from the MAME files, i.e. if we ever decide to change the tree structure, it will be much easier to move these files in any other location of the tree without affecting MAME (or MESS) compile process
Instructions:
- Enable SHOW_AARON_BUG and compile
- Run any Naomi game with -debug (e.g. toyfight)
- Step to the MOV.L at 00000018
- Thrill to an aligned 32-bit write causing 2 incorrect writes to a 32-bit handler, complete with wrong offset. The memory system appears to think the 32-bit handler is a 16-bit handler or something.
This is a proof-of-concept commit. It works but is far from stable. Synchronization between two mame processes is *somehow* (trying to avoid hacked) in. However, this is not HLE. Shared memory is used to share the serial interface lines.
If the shared memory code is not enable, stub functions are used. If you set the link mode to master or slave, "not linked" will be shown in the game. That's better than the previous hang.
Please, no whatsnew.
Added a new stream_create that takes fewer parameters and calls the
device's stream update. Removed the stream update stub template.
Updated BSMT2000 and OKIM6295 to use the new interface for their
streams.
-Found a few more fixeight opcodes, by matching code in the interrupt routines with batsugun [Alex Jackson]
-Corrected fixeight V25 address map (the YM2151 and OKI6295 are at a different location than the other games) [Alex Jackson]
-Preliminary implementation of V25/V35 port output [Alex Jackson]
Program ROMs are encrypted. Tiles seems to be decoded properly.
All bipolar PROMs need to be dumped.
New games marked as GAME_NOT_WORKING
------------------------------------
Lucky Lady (Wing, encrypted) [Roberto Fresca, Team Europe & Willi.O]
* Lots of changes to get working the Video Klein games.
* Renamed witchcde to witchjol --> Jolly Witch (Export, 6T/12T ver 1.57D).
* Added Wild Witch (Export, 6T/12T ver 1.74A).
* New video hardware and machine driver for Video Klein's extended tiles games.
* Added Dallas DS1210 + battery backed RAM support to the Video Klein CPU boxed games.
* Improved inputs for Jolli Witch and Wild Witch. Added the game selector switch.
* Cleaned up some witch card sets.
* Added technical and game notes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Witch Card (Video Klein CPU box) [Roberto Fresca]
Jolli Witch (Export, 6T/12T ver 1.57D) [Roberto Fresca]
Wild Witch (Export, 6T/12T ver 1.74A) [Roberto Fresca, Team Europe]
- Former modules are now classes being derived from discrete_base_node
- Moved all context variables to be private class members.
- For "standard nodes", DISCRETE_CLASS_STEP_RESET provides a simple
way to implement a node.
- All information around a node (additional info struct, constants
and input mappings may be defined on a class level centralizing
all information. An example is dss_inverter_osc.
- Significantly simplified the task handling.
- Fixed a bug which would not buffer secondary outputs.
- All lists in sound/disc_* are now based on
dynamic_array_t (discrete.h)
- Changed all drivers to reflect the changes.
- Custom modules are now just another node class.
- No performance hit observed due to these changes.
---------
1943: Battle of Midway (bootleg, hack of Japan set) [Smitdogg, The Dumping Union]
Road Riot 4WD (set 1, 13 Nov 1991) (not working) [Smitdogg, The Dumping Union]
-Figured out which bit controls V25 RESET in each game by comparing the 68000 code
-Added a comment about fixeight's I/O map, which we'll have to determine once we start decrypting it
-Put #ifndef USE_ENCRYPTED_V25S around some simulation crap that was hiding in fixeight's DRIVER_INIT