While working on implementing memory.register for LUA, it occured to me
that for SegaCD games, and 32X games, it would be very helpful to be able
to specify which CPU's memory space you want to hook.
Which, in turn, made me realize that there is literally no visibility of
the SegaCD sub68k memory space in current RAM search, and there's only one
small region of the 32X SH2 memory space currently included. Additionally,
the Z80's memory space, while almost entirely included in the 0xA0xxxx
region, could benefit from being separated from the Main68K memory.
My proposal is to turn the ram search dialog into a tabbed interface.
1. the 68000 tab, including:
*the game SRAM (SRAM_Start - SRAM_End) when applicable
*the portion of SegaCD PRG-RAM viewable by the Main 68000 (020000 -
03FFFF; no change necessary)
*the SegaCD Data RAM (200000 - 23FFFF; no change necessary) when applicable
*the cartridge battery ram (400000 - 7FFFFF; trimmed to emulated BRAM
size) when applicable
*the 32X frame buffer (840000 - 85FFFF) when applicable
*the 32X frame overwrite buffer (860000 - 87FFFF) when applicable
*the Z80 RAM (no change necessary)
*the I/O region (A10000 - A1002F; perhaps) when applicable
*the 32X register region (A15100 - A151FF) when applicable
*the Main 68000 work RAM (no change necessary)
2. the Z80 tab, including:
*The z80 RAM (0000 - 1FFF; same region currently shown at A0xxxx)
*The YM2612 region (4000 - 4004)
*The PSG region (7F11 - 7F12)
*The z80 window into Main 68000 memory (8000 - FFFF)
3. the Sub 68000 tab (when SegaCD is active) including:
*the PRG RAM (000000 - 01FFFF; same memory as shown in m68k tab)
*the Data RAM (080000 - 0DFFFF; same memory as shown in m68k tab, but
mapped differently)
*the system battery RAM (FE4000 - FEFFFF; not shown currently)
*the segaCD registers area (FF8000 - FF81FF; not shown currently)
4. The SH2 tab (when 32X is active) including:
*the registers (00004000 - 000041ff; larger set than m68k can access)
*the frame buffer (04000000 - 0401FFFF; same as m68k sees)
*the frame overwrite buffer (04020000 - 0403FFFF; same as m68k sees)
*the SDRAM (06000000 - 0603FFFF; currently displayed)
I do intend to work on this myself, but suspect I will require Nitsuja's
assistance to make sure that I don't fuck anything up in the process.