There is no need for a second device for World Rally and Glass, it's the
same thing. How the address lines are hooked up for host memory access
is part of the driver and can be done with a mirror/mask in the address
map provided by the driver. There's also no need for the SRAM
trampolines in the device, that can be done entirely through address
maps.
The drivers need trampolines to do the address swizzling. We should be
able to get rid of these when we get better support for 8-bit views of
16-bit components (dooyong drivers also have ugly trampolines for doing
this kind of thing).
* gameboy.xml: remove misleading comment
Sachen 4B-003 was recently added
Signed-off-by: Tauwasser <tauwasser@tauwasser.eu>
* gameboy: fix Super Game Boy VRAM transfer
A basic implementation of VRAM transfer. It fixes a number of games and removes
the SGB border hack. However, it's very likely that the bahvior is much more
complex. The old implementation was good enough for the majority of games,
so this should suffice until such time when SGB is implemented on top of SNES.
The attribute data was resized to 4096 bytes, so a whole VRAM transfer can take place
even though only 4050 bytes are used. The idea is that the whole 4096 bytes are
_probably_ transferred to WRAM and a game might theoretically upload a small executable
and use that data. However, running native SNES code is currently unsupported anyway.
Signed-off-by: Tauwasser <tauwasser@tauwasser.eu>
* gameboy: various code style/comment fixes
- return GB_MBC_NONE instead of magic 0 value
- add MLT_REQ case in sgb code and mention where it's actually handled
- add PAL_PRI to list of known SGB commands (not implemented)
- fix two comments
Signed-off-by: Tauwasser <tauwasser@tauwasser.eu>
* gameboy: coding style fixes for gb_lcd
Signed-off-by: Tauwasser <tauwasser@tauwasser.eu>
* Sort software part menu in internal UI (was ordered by hash)
This preserves the option priority behaviour from 0.187 when setting the
instance option to the desired part.
Note that software part selection from internal UI doesn't actually
work. For example with zorba:cpm, no matter which part you select,
you'll always end up with flop1 in A: and flop2 in B:. This actually
did work properly in 0.187, so something has gone wrong in between.