EEPROM data, and the size is in terms of units, not bytes. Updated all
drivers accordingly.
Changed the ROM loading code to actually alter the region flags based
on the CPU endianness and bus width when creating the region, rather
than fixing them up on the fly. This means that callers to
memory_region_flags() will get the correct results.
Changed the expression engine to use two callbacks for read/write rather
than relying on externally defined functions.
Expanded memory access support in the expression engine. Memory accesses
can now be specified as [space][num]<size>@<address>. 'space' can be
one of the following:
p = program address space of CPU #num (default)
d = data address space of CPU #num
i = I/O address space of CPU #num
o = opcode address space of CPU #num (R/W access to decrypted opcodes)
r = direct RAM space of CPU #num (always allows writes, even for ROM)
e = EEPROM index #num
c = direct REGION_CPU#num access
u = direct REGION_USER#num access
g = direct REGION_GFX#num access
s = direct REGION_SOUND#num access
The 'num' field is optional for p/d/i/o/r, where is defaults to the
current CPU, and for e, where it defaults to EEPROM #0. 'num' is required
for all region-related prefixes. Some examples:
w@curpc = word at 'curpc' in the active CPU's program address space
dd@0 = dword at 0x0 in the active CPU's data address space
r2b@100 = byte at 0x100 from a RAM/ROM region in CPU #2's program space
ew@7f = word from EEPROM address 0x7f
u2q@40 = qword from REGION_USER2, offset 0x40
The 'size' field is always required, and can be b/w/d/q for byte, word,
dword, and qword accesses.
* also fixes that the frog disappears for player 2 if moved backwards. This will
position him on x=242.
All games in this driver now have the sprites in cocktail/player 2 now offset by 2
- All games on all drivers should work as before except "colmns97" and "stress" which crash due to sound system trouble.
- All idle skips are still included. They are quite a bit less effective than they were on the interpreter, but they still give a boost.
- Fast RAM bypass is not included yet so this does not represent final performance. That said, it's consistently faster than the interpreter even now. Example: sfiii3 on 0.126 gets 609% on the interpreter and 961% on the DRC.
Major thanks to Aaron for his assistance with several sticky core bugs and other issues encountered writing this.
lurking. If you run into anything odd, please let me know.
Added new module uiinput.c which manages input for the user interface.
The OSD is responsible for pushing mouse events and character events
to this interface in order to support mouse movement and text-based
input (currently only used for the select game menu). Added support
for navigating through the menus using the mouse.
[Nathan Woods, Aaron Giles]
Redesigned the UI menus so that they can maintain a richer state. Now
the menus can be generated once and reused, rather than requiring them
to be regenerated on each frame. All menus also share a comment eventing
system and navigation through them is managed centrally. Rewrote all the
menus to use the new system, apart from the cheat menus, which are now
disabled. Reorganized the video menu to make it easier to understand.
[Aaron Giles]
01917: gunlock, rayforce, rayfocj: The color of Battleships is wrong in the 1st stage.
01925: gunlock, rayforce, rayforcj: The explosive color of the demo is different.