- some more "list-ification"
- No more constraints on number of input and output nodes
- input nodes now make use of a context
Some of these changes are needed to introduce "internally buffered" input nodes going forward. These will use an internal stream to buffer all inputs so that stream_update will always calculate 20ms of samples.
- Disabled RAM/ROM clocking, going with instant transfer for now
- Understood and re-enabled pipelined instruction architecture, Star Fox runs farther
- Fixed a ridiculous typo in ROL instruction
- Corrected carry flag behavior in ROL opcode
- Corrected BRA target address calculation (maybe still wrong)
- Corrected LOOP target address calculation
- Made sure that FROM sets cpustate->sreg_idx
- Redumped GFX Roms [Guru]
- Added hitbox simulation based on suprnova / game requirements [Tomasz Slanina]
- Converted MCU writes to use write_byte [David Haywood]
- Added kludge to reset MCU data write address to prevent game from running out of ram and crashing [David Haywood]
- Added DSWs [David Haywood]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
B.Rap Boys / B.Rap Boys Special [David Haywood, Tomasz Slanina, Luca Elia]
Corrected one rom name for Mega Touch 6 set
Added dip port locations
Corrected dips for the 2 Pit Boss Megastar sets
Improved the dips for Pit Boss Supertouch 30
Minor information / documentation updates
* Executed a trojan on 2 noraut systems to confirm the way 16x32 tiles are decoded.
* Fixed the x-offset for 32x32 tiles lines.
* Fixed the screen aspect and visible area.
* Confirmed correct colors. No bipolar PROM involved.
* Added Noraut Joker Poker hardware and PCB layouts.
* Documented the discrete audio circuitry. Added a full diagram.
The following driver updates: [Brian Troha]
Corrected rom names for the Megastar & Supertouch 30
Added missing rom to Supertouch 30 and verified old bad_dumps
Added documentation about the Megastar sets
Made pbst30b a clone of pbst30 and added program versions to the name, IE: Pit Boss Supertouch 30 (9234-10-01)
New Clone Added
-------------------------
Pit Boss Megastar (9244-00-01) [Brian Troha, Dumping Union]
Introduced DISCRETE_TASK_START, DISCRETE_TASK_END
DISCRETE_TASK_START
- Start a new task. A task is a set of nodes which only depend on input nodes and nodes in the set
DISCRETE_TASK_END(task_output_node)
- Marks the end of the task. task_output_node is the node whose output over time should be preserved. This node can be accessed by nodes in the main thread.
Order of execution:
a) All tasks in parallel
b) All nodes not part of a task. These may only refer to nodes listed in DISCRETE_TASK_END
Illustrated the concept in the dkong discrete emulation. This also has been enhanced to buffer DAC output.
Further changes:
- DISCRETE_OUTPUT now is a stepping node.
- DISCRETE_STREAM_INPUT now advances input pointer in step.
- More linked_list usage.
I estimate that the rework without tasks leads to a 5% performance gain. For dkong, the usage of tasks adds another 15%.
There are some features missing:
- Multiple nodes in DISCRETE_TASK_END
- More task consistency checks
- Task identifiers for tasks
Decoded all protection data for B.Rap Boys [David Haywood, Tomasz Slanina]
Cleaned up decryption function for B.Rap Boys external Rom [David Haywood]
Improved video emulation for B.Rap Boys [David Haywood]
Marked several GFX roms as bad on B.Rap Boys [David Haywood]
Improved protection simulation logic w/regards to writeback addresses, allowing B.Rap Boys to boot [Tomasz Slanina]
http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=199853&page=0&view=expanded&sb=5&o=&fpart=1&vc=1
I don't know this z80 emulator well enough to look into his first two points. Juergen?
1/ In the cc_xy[] table which lists instructions with DD or FD prefixes, "illegal" combos are returning 4 cycles when they should return 4 + cc_op (the normal instruction being executed). Another way to handle this correctly is to call EXEC(z80,fd,xx) or EXEC(z80,dd,xx) instead of op_xx(z80) when such pair of opcode is detected, to be sure the correct amount of cycles is used.
2/ According to Sean Young, R register is NOT incremented when chaining multiple DD or FD prefixes: [...]
This one was already fixed, dunno when:
2/ In the cc_ed[] table, INI (ED A2) and IND (ED AA) should return 16 cycles, like other instructions from this group, not 12. This seems to be a typo error.
Not working (100% correctly) like all games in the Mega-Tech Mega-Play driver
New Game Added
-------------------------------------
Great Football [Kevin Eshbach, Charles MacDonald, Smitdogg, Dumping Union]
- change the way custom modules are handled
- updated drivers mario and dkong accordingly
- minor change to stream input handling
- no more linear lists for nodes. All node processing switched to linked lists.
- module step and reset now only get a node pointer passed
- Added discrete_info * pointer to node
- Only nodes with a step routine actually get processed.
- Fixed a bug: discrete logs did not work since some time
- preliminary parallel task constants; depending on results these may vanish again.
- Overall slight performance increase. dkong 940% to 960%, galaxian 740% to 790%
- implemented carts banking and multiple EEPROMs
- added "pen replacement" blit mode
- fixed palette size
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Galaxy Games StarPak 2 [Luca Elia, Siftware]