summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/megadriv.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-1033/+0
|
* Relaxed emu.h a bit, should make compile a bit faster (nw) Miodrag Milanovic2015-11-051-1/+1
|
* New machines marked as NOT_WORKING Shideravan2015-10-251-1/+94
| | | | | | | ---------------------------------- Mega-CD with 32X (Japan, NTSC) [Shideravan] Mega-CD with 32X (Europe, PAL) [Shideravan] (I'll edit mess.lst for these drivers too)
* Attributing segacd sl for the 32x_scd driver Shideravan2015-10-201-0/+1
| | | Of course, "Sega CD (USA, NTSC, w/32X)" needs to have compatibility with Sega CD softwarelist too.
* move mess into mame (nw) Miodrag Milanovic2015-09-301-0/+939
|
* Start of the boredom ... Angelo Salese2011-05-121-1123/+0
|
* megadriv.c: added proper megacd dumps to the mess driver. no whatsnew Fabio Priuli2011-04-131-8/+25
|
* Final bulk rename for 0.142: ensure that all members of Aaron Giles2011-04-011-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | driver_device classes have an m_ prefix on them. When we eventually move functions using these into member functions, we will be able to remove the state-> pointers, and having the member variables prefixed will allow them to be distinguished from local variables. Some regex'es used (plus manually fixing the remaining stuff): In src/mame/... state->([a-zA-Z_][^_][a-zA-Z0-9_]*) state->m_\1 state->([^m]_[a-zA-Z0-9_]*) state->m_\1 state->m_save_item state->save_item state->m_save_pointer state->save_pointer (AM_BASE_MEMBER *\( *[a-zA-Z0-9_]+ *, *)([a-zA-Z_][^_]) \1m_\2 (AM_BASE_SIZE_MEMBER *\( *[a-zA-Z0-9_]+ *, *)([a-zA-Z_][^_][a-zA-Z0-9_]* *, *)([a-zA-Z_][^_]) \1m_\2m_\3 (AM_SIZE_MEMBER *\( *[a-zA-Z0-9_]+ *, *)([a-zA-Z_][^_]) \1m_\2 m__ m_ In src/mame/includes/... (\t[a-zA-Z0-9_<>]+[ \t]+[&*]*[ \t]*)([a-zA-Z_][^_][][a-zA-Z0-9_]*;)$ \1m_\2 (\t[a-zA-Z0-9_<>]+[ \t]*[&*]*[ \t]+)([a-zA-Z_][^_][][a-zA-Z0-9_]*;)$ \1m_\2
* BIG update. Aaron Giles2011-03-291-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove redundant machine items from address_space and device_t. Neither machine nor m_machine are directly accessible anymore. Instead a new getter machine() is available which returns a machine reference. So: space->machine->xxx ==> space->machine().xxx device->machine->yyy ==> device->machine().yyy Globally changed all running_machine pointers to running_machine references. Any function/method that takes a running_machine takes it as a required parameter (1 or 2 exceptions). Being consistent here gets rid of a lot of odd &machine or *machine, but it does mean a very large bulk change across the project. Structs which have a running_machine * now have that variable renamed to m_machine, and now have a shiny new machine() method that works like the space and device methods above. Since most of these are things that should eventually be devices anyway, consider this a step in that direction. 98% of the update was done with regex searches. The changes are architected such that the compiler will catch the remaining errors: // find things that use an embedded machine directly and replace // with a machine() getter call S: ->machine-> R: ->machine\(\)\. // do the same if via a reference S: \.machine-> R: \.machine\(\)\. // convert function parameters to running_machine & S: running_machine \*machine([^;]) R: running_machine \&machine\1 // replace machine-> with machine. S: machine-> R: machine\. // replace &machine() with machine() S: \&([()->a-z0-9_]+machine\(\)) R: \1 // sanity check: look for this used as a cast (running_machine &) // and change to this: *(running_machine *)
* Created new enum type address_spacenum for specifying an address Aaron Giles2011-03-271-1/+1
| | | | | | | | | | | | space by index. Update functions and methods that accepted an address space index to take an address_spacenum instead. Note that this means you can't use a raw integer in ADDRESS_SPACE macros, so instead of 0 use the enumerated AS_0. Standardized the project on the shortened constants AS_* over the older ADDRESS_SPACE_*. Removed the latter to prevent confusion. Also centralized the location of these definitions to memory.h.
* Another MESS specific update Angelo Salese2011-03-181-1/+3
|
* Fixed a minor quirk in region initialization for MESS. no whatsnew (being ↵ Fabio Priuli2011-02-161-0/+8
| | | | MESS-only).
* moved svp variables in its driver state class. no whatsnew, being MESS only. Fabio Priuli2011-02-121-1/+1
|
* megadriv.c: Rewritten SegaCD/MegaCD emulation [David Haywood] Fabio Priuli2011-02-121-6/+6
| | | cdrom.h: Added alt lba_to_msf conversion needed by SegaCD/MegaCD [David Haywood]
* First (small) step towards driver class for megadrive-based drivers [Fabio ↵ Fabio Priuli2011-02-121-95/+98
| | | | | Priuli] out of whatsnew: this can be considered as preliminary. things like the empty md_base_state class have been done in purpose to reduce as much as possible changes in machine/megadriv.c (so to avoid overlaps/conflicts with Haze's work on segacd). next steps will start to move megadrive variables to the class.
* As promised, the bulk update of timer calls: Aaron Giles2011-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | timer_adjust_oneshot(t,...) => t->adjust(...) timer_adjust_periodic(t,...) => t->adjust(...) timer_reset(t,...) => t->reset(...) timer_enable(t,...) => t->enable(...) timer_enabled(t) => t->enabled() timer_get_param(t) => t->param() timer_get_ptr(t) => t->ptr() timer_set_param(t,...) => t->set_param(...) timer_set_ptr(t) => t->set_ptr(...) timer_timeelapsed(t) => t->elapsed() timer_timeleft(t) => t->remaining() timer_starttime(t) => t->start() timer_firetime(t) => t->expire() Also remove some stray legacy cpuexec* macros that were lurking in schedule.h): cpuexec_describe_context(m) => m->describe_context() cpuexec_boost_interleave(m,...) => m->scheduler().boot_interleave(...) cpuexec_trigger(m,...) => m->scheduler().trigger(...) cpuexec_triggertime(m,...) => m->scheduler().trigger(...) Specific regex'es used: timer_adjust_oneshot( *)\(( *)([^,;]+), * \3->adjust\1\(\2 timer_adjust_periodic( *)\(( *)([^,;]+), * \3->adjust\1\(\2 (->adjust.*), *0( *)\) \1\2\) timer_reset( *)\(( *)([^,;]+), * \3->reset\1\(\2 (->reset *\(.*)attotime::never \1 timer_enable( *)\(( *)([^,;]+), * \3->enable\1\(\2 timer_enabled( *)\(( *)([^,;)]+)\) \3->enabled\1\(\2\) timer_get_param( *)\(( *)([^,;)]+)\) \3->param\1\(\2\) timer_get_ptr( *)\(( *)([^,;)]+)\) \3->ptr\1\(\2\) timer_timeelapsed( *)\(( *)([^,;)]+)\) \3->elapsed\1\(\2\) timer_timeleft( *)\(( *)([^,;)]+)\) \3->remaining\1\(\2\) timer_starttime( *)\(( *)([^,;)]+)\) \3->start\1\(\2\) timer_firetime( *)\(( *)([^,;)]+)\) \3->expire\1\(\2\) timer_set_param( *)\(( *)([^,;]+), * \3->set_param\1\(\2 timer_set_ptr( *)\(( *)([^,;]+), * \3->set_ptr\1\(\2 cpuexec_describe_context( *)\(( *)([^,;)]+)\) \3->describe_context\1\(\2\) \&m_machine->describe_context m_machine.describe_context cpuexec_boost_interleave( *)\(( *)([^,;]+), * \3->scheduler().boost_interleave\1\(\2 cpuexec_trigger( *)\(( *)([^,;]+), * \3->scheduler().trigger\1\(\2 cpuexec_triggertime( *)\(( *)([^,;]+), * \3->scheduler().trigger\1\(\2
* Convert emu_timers to objects. Move implementation and management of Aaron Giles2011-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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()
* Cleanups and version bump.mame0141u1 Aaron Giles2011-01-241-1/+1
|
* reorganized megadrive/sms sourcefiles: Fabio Priuli2011-01-231-9021/+2
| | | | | | | | * 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
* added ElBarto's patch to improve SRAM handling in MESS megadrive. no whatsnew. Fabio Priuli2011-01-201-1/+1
|
* Placed full megadrive code in MAME section [David Haywood] Miodrag Milanovic2011-01-141-35/+807
|
* Ah, I forgot to commit this. Now all.mak can be fully compiled and linked ↵ Miodrag Milanovic2011-01-081-4/+4
| | | | (no whatsnew)
* Removed mess from names of some calls in image device code (no whatsnew) Miodrag Milanovic2011-01-061-1/+1
|
* Moved image devices implementation and related UI functions to emu section ↵ Miodrag Milanovic2011-01-051-3/+1
| | | | from MESS [Miodrag Milanovic]
* Ok, last major rename for this round: Aaron Giles2011-01-011-11/+11
| | | | | | | | | | | | | | | | memory_region() == machine->region()->base() memory_region_length() == machine->region()->bytes() region_info -> memory_region Regex searches: S: memory_region( *)\(( *)([^,&]+), *([^)]+)\) R: \3->region\1\(\2\4\)->base\(\) S: memory_region_length( *)\(( *)([^,&]+), *([^)]+)\) R: \3->region\1\(\2\4\)->bytes\(\)
* mame_rand() -> machine->rand() Aaron Giles2010-12-311-17/+17
|
* running_device -> device_t Aaron Giles2010-12-311-3/+3
| | | | | They both already existed. No sense in having two names for the same object type.
* MDRV_* -> MCFG_* Aaron Giles2010-12-311-127/+127
| | | | | There hasn't been a machine driver for many years.
* Cleanup & version bump.mame0140u1 Aaron Giles2010-11-081-2/+2
|
* Fix compile Angelo Salese2010-10-251-3/+3
|
* Latest megadriv source Angelo Salese2010-10-251-53/+187
|
* Cleanups and version bump.mame0140 Aaron Giles2010-10-211-41/+41
|
* Sync with latest Angelo Salese2010-10-201-60/+76
|
* Yet another Mega CD update Angelo Salese2010-10-181-89/+260
|
* another megadriv.c update Angelo Salese2010-10-151-12/+75
|
* Recent megadriv.c Angelo Salese2010-10-151-1/+40
|
* Haze: Clamp Roz stuff to 24-bit, seems to fix the remaining issues with the ↵ Scott Stone2010-10-151-0/+4
| | | | Sega logos.
* Haze: Fixed use of the sign bits on the SegaCD Roz parameters, improves the ↵ Scott Stone2010-10-141-104/+369
| | | | SegaCD intro rotations etc. which now appear correct.
* Cleanups and version bump. Aaron Giles2010-10-141-35/+35
|
* Temp fix compile (offending code will be ported to a MESS-specific file at ↵ Angelo Salese2010-10-131-8/+23
| | | | the very end)
* Latest sync with MESS, define switch following ... Angelo Salese2010-10-131-17/+79
|
* Daily work about Mega CD from MESS Angelo Salese2010-10-121-20/+171
|
* Haze: Mega CD related progresses Angelo Salese2010-10-111-6/+414
|
* Ported code from MESS Angelo Salese2010-10-111-10/+250
|
* Latest megadriv.c from MESS Angelo Salese2010-10-091-42/+87
|
* Standards and Practices cleanup Scott Stone2010-10-081-1/+1
|
* Clean-ups Angelo Salese2010-10-071-39/+38
|
* Haze: more Mega CD improvements Angelo Salese2010-10-071-1/+38
|
* Haze: Mega CD related improvements Angelo Salese2010-10-051-40/+477
|
* Some note updates Angelo Salese2010-10-031-20/+51
|