2024-11-27 14:20:33 by pin | Files touched by this commit (1) |
Log message:
emulators/jgenesis: re-enable zenety dependency
Forgot to switch this on.
|
2024-11-27 14:16:09 by pin | Files touched by this commit (5) | |
Log message:
emulators/jgenesis: update to 0.8.2
v0.8.2
Mostly frontend improvements, the highlights being improved video/audio sync and \
more flexible
input/hotkey mapping. Also adds Genesis overclocking support.
Input/hotkey configuration is not compatible with previous versions; input \
configuration is now stored in a different format, and all input-related \
settings will one-time revert to defaults if using a config file from a previous \
version
Save states are not compatible with previous versions
New Features
Video/audio sync improvements which should enable significantly improved \
frame pacing without needing to rely on 60Hz VSync (which can cause very \
noticeable input latency on some platforms)
Added a new "frame time sync" option that uses the host system \
clock to match the emulated system's framerate and frame timing as closely as \
possible without relying on host GPU synchronization (i.e. VSync)
Added a new option for dynamic audio resampling ratio, which \
periodically adjusts the audio resampling ratio to try and avoid audio buffer \
underflows and overflows (which both cause audio popping)
This is implemented in a very conservative way in order to avoid \
audible differences in audio pitch, so it is not completely guaranteed to \
prevent audio buffer underflow/overflow
Audio sync now checks the audio buffer size every 16 samples enqueued \
rather than only checking once per frame, which should significantly reduce \
stuttering when audio sync is enabled without VSync or frame time sync
Adjusted default sync/audio settings values to hopefully make stuttering \
and audio popping less likely when running with default settings
In the GUI, video/audio sync settings have been moved to a new window \
under Settings > Synchronization
Input mapping overhaul to make input mapping/configuration more flexible \
(#134 / #137)
Keyboard and gamepad settings are no longer separate configurations; \
each system now supports up to 2 mappings for each emulated button where each \
mapping can be a keyboard key, a gamepad input, or a mouse button
Key/input/button combinations (2 or 3 simultaneous inputs) are now \
supported for mappings in addition to individual keys/inputs
Hotkeys can now be mapped to gamepad inputs, mouse buttons, and \
combinations in addition to individual keyboard keys
Each input settings window now has a button to apply one of two keyboard \
presets for P1 inputs, one with arrow keys mapped to the d-pad and one with WASD \
mapped to the d-pad
Added a new set of hotkeys for saving/loading specific save state slots (#134)
(Genesis / Sega CD / 32X) Added an option to overclock the main Genesis CPU \
(the 68000) by decreasing the master clock divider, which can reduce or \
eliminate slowdown in games (#133)
Note that this is a fairly naive form of overclocking that works very \
well in many games but very poorly in some games; use with caution
As far as SCD/32X, from my testing overclocking the 68000 almost always \
causes problems in 32X games (which are normally bottlenecked on SH-2 speed \
anyway), but it does fix slowdown in some Sega CD games
(SMS / Game Gear) Replaced the "double Z80 CPU speed" setting with \
an option to overclock at finer granularity by decreasing the Z80 master clock \
divider
Same caveat as above regarding this form of overclocking working very \
poorly in some games, and this is more of an issue for SMS/Game Gear than it is \
for Genesis/Sega CD
Added an option to only hide the mouse cursor when in fullscreen, in \
addition to the previous settings of "always hide" and "never \
hide"
Added an option to change the fullscreen mode from borderless to exclusive
Added an option to change the audio output frequency from 48000 Hz to 44100 Hz
Improvements
(Genesis / Sega CD) Slightly improved performance by advancing the emulated \
clock in larger intervals while a long VDP DMA is in progress
(32X) Slightly improved performance by optimizing SH-2 instruction decoding
(GB) Improved video frame delivery behavior when the PPU is powered off to \
make it play a little nicer with VSync and frame time sync
The emulator window is now explicitly focused/raised when a game is loaded; \
previously this wouldn't always happen automatically, particularly on Windows
Fixes
(Sega CD) Slightly extended the delay between a game sending a CDD Play/Read \
command and the CD drive reading the first sector; this fixes Time Gal having \
excruciatingly long "load times"
"Load times" in quotes because the game was actually getting \
confused and repeatedly re-reading the same CD-ROM sectors until various \
interrupts happened to trigger at exactly the right times relative to each other
(Sega CD) Fixed a bug where some backend settings would not correctly \
persist after loading a save state (they would temporarily revert to what they \
were when the save state was created)
v0.8.1
Small release with mostly bugfixes and a few save state-related features
SMS/Game Gear and NES save states are not compatible with previous versions, \
other systems' save states should be compatible
Features
Made the game save file and save state locations configurable (#132)
Can be set to the same folder as the ROM image (same as previous \
behavior), subdirectories in the emulator folder, or custom paths
Added a new --load-save-state <SLOT> command-line arg to load a \
specific save state slot at game launch (#132)
Added an option to attempt to load the most recently saved state when \
launching a game
If this option is set when there are no save states or the most recent \
state cannot be loaded, the game will boot normally
(Game Gear) Added an option to render at SMS resolution (256x192) instead of \
native resolution (160x144)
The expanded parts of the frame often contain garbage because they \
weren't meant to be visible, but they sometimes contain an expanded playfield
Fixes
(Sega CD) Fixed a bug where loading a save state could possibly crash the \
emulator due to a stack overflow; this was particularly likely to happen on \
Windows due to the small default stack size
This was caused by the state deserialization code inadvertently \
deserializing some very large arrays into the stack before moving them to the \
heap, rather than deserializing directly into the heap
(SMS/Game Gear) Fixed the VDP display disabled implementation so that it \
properly blanks the display rather than leaving the previous frame onscreen
(SMS) Fixed the NTSC/PAL and SMS Model settings not having any effect when \
loading a game from a .zip/.7z file rather than a .sms file
(NES) Fixed multiple bugs related to how the PPU determines what color to \
display when rendering is disabled while PPUADDR points to palette RAM; this \
fixes Micro Machines having a solid gray bar in the middle of the title screen, \
as well as several test ROMs that rely on this hardware quirk for high-color \
display (#53 / #55 / #56)
GUI: Saving or loading a save state slot from the GUI window now also \
changes the selected save state slot
CLI: Fixed
the 32X option missing from the help text for the --hardware arg (#131)
The video memory viewer window now renders without VSync; this fixes likely \
stuttering and audio popping while the memory viewer window is open
|
2024-10-13 22:25:40 by pin | Files touched by this commit (6) | |
Log message:
emulators/jgenesis: update to 0.8.0
Highlights
- Added support for 32X emulation (with a caveat regarding performance)
- Significant audio quality improvements for Genesis / Mega Drive and SNES
- Support for loading directly from .zip and .7z files
- Lots of Genesis / Mega Drive bugfixes
32X Notes
- All released 32X games plus Doom 32X Resurrection should be playable except \
for the 6 FMV games that require the Sega CD 32X combo
- Doom 32X Resurrection features that require Sega CD do not currently work \
(CD-DA music, offloading some audio processing to the Sega CD 68000)
- SH-2 CPU cache and basic SH-2 memory access timings are emulated, so overall \
SH-2 speed should be moderately accurate (though still faster than actual \
hardware in some cases)
- SH-2 emulation is currently not optimized well - full-speed 32X emulation \
requires a CPU with decent single-core performance, and fast-forward speed will \
be very limited
- For a comparison point, the Steam Deck CPU barely runs 32X at full speed \
from my testing
- This will likely improve in a future release - the current implementation \
is pure interpreter because that was easiest to implement and it (surprisingly) \
still runs at full speed with a fast
enough host CPU
New Features
- Added support for loading directly from .zip and .7z compressed archives for \
every console except Sega CD (#91)
- Archives containing multiple images are only partially supported; in this \
case the emulator will always load the first file with a recognized file \
extension
- (SNES) Added an audio enhancement option for cubic Hermite interpolation \
between decoded ADPCM samples, which usually makes the audio sound sharper and \
less muffled
- The difference is most noticeable in games that use low sample rate \
audio, such as the Donkey Kong Country trilogy
- This is off by default because it pretty radically changes the sound in \
some games
- (Genesis) Added an option to have no controller plugged into one or both of \
the controller ports, for games that behave differently based on the presence or \
absence of a controller (#113)
- (NES) Added support for the UNROM 512 mapper (iNES mapper 30), a homebrew \
mapper used by a number of games including Black Box Challenge and Battle Kid 2 \
(#73 / #86)
- This mapper unusually supports flash memory mapped as PRG \
"ROM"; for the games that have this (e.g. Black Box Challenge), it's \
emulated by persisting the entire current contents of PRG ROM to
the save file whenever the game modifies itself
- (GB) Added partial support for the Hudson HuC-3 mapper, used by Robopon and a \
few Japan-only games (#89)
- "Partial" because the builtin speaker, the IR sensor, and parts \
of the event/alarm functionality are not emulated
- GUI: Added a new "Open Using" menu option to open a file using a \
specific emulator core, rather than always choosing the core based on file \
extension (#121)
- GUI: Added an option to explicitly set the UI theme to light or dark rather \
than always using the system default
Improvements
- (Genesis) YM2612 DAC crossover distortion (aka the "ladder effect") \
is now emulated, which significantly improves music accuracy in a number of \
games; this is extremely noticeable in Streets of
Rage, Streets of Rage 2, and After Burner II, among others
- There is also a new option to disable ladder effect emulation, since the \
effect was less pronounced on later console models (and also because I think \
it's neat to hear how it affects the sound
by toggling a checkbox)
- (SMS/GG/Genesis) Replaced the PSG and YM2612 low-pass filters with much more \
aggressive ones; this should generally improve audio quality, and in some cases \
will remove erroneous buzzing/popping
noises that were present before (e.g. in The Adventures of Batman & Robin) (#108)
- Improved audio output behavior for all emulator backends, which should \
significantly reduce the likelihood of audio pops caused by audio buffer \
underflow
- GUI: Added help text to most options menus
- GUI: Improved performance when the main list table is large
Genesis / Mega Drive Fixes
- Fixed the PSG's noise channel not oscillating when the period is set to 0 \
(which should behave the same as period of 1); this fixes missing high-frequency \
noise in Knuckles' Chaotix among other
games
- Fixed a degenerate case for performance when a game repeatedly writes the \
same value to specific VDP registers during active display, as After Burner \
Complete does
- Fixed some 68000 CPU bugs discovered while working on 32X support
- Implemented line 1010/1111 exception handling for when the 68000 executes \
an illegal opcode where the highest 4 bits are 1010 or 1111; Zaxxon's Motherbase \
2000 depends on this to boot
- Fixed divide by zero exception handling pushing the wrong PC value onto \
the stack; After Burner Complete frequently divides by zero and depends on \
correctly handling the exception
- Fixed the DIVS instruction finishing way too quickly in some cases where \
the division overflows a signed 16-bit result but the CPU doesn't detect the \
overflow early
- Fixed an off-by-one error in determining whether to set the sprite overflow \
flag in the VDP status register; this fixes flickering sprite graphics in Alex \
Kidd in the Enchanted Castle (#125)
- This was a regression introduced in v0.6.1 as part of the changes to get \
Overdrive 2's textured cube effect working
- Adjusted how writes to the controller CTRL registers ($A10009 / $A1000B) \
affect the controller's TH line; this fixes controls not working properly in \
Trouble Shooter (#110)
- Made it possible for games to read the VINT flag in the VDP status register \
as 1 slightly before the 68000 INT6 interrupt is raised; this fixes Tyrants: \
Fight Through Time and Ex-Mutants failing
to boot (#127)
- Implemented undocumented behavior regarding how the Z80 BIT instruction sets \
the S and P/V flags; this fixes missing audio in Ex-Mutants, which relies on \
this behavior in its audio driver code
- Implemented approximate emulation of memory refresh delay
- This is emulated by simply stalling the 68000 for 2 out of every 128 mclk \
cycles, unless it executes a very long instruction that doesn't access the bus \
mid-instruction (e.g. multiplication or
division)
- Memory refresh delay is not emulated in 32X mode because it seemed to \
break audio synchronization between the Genesis and 32X hardware in some games
- Added SRAM mappings for several games that have SRAM in the cartridge but \
don't declare it in the cartridge header: NHL 96, Might and Magic, and Might and \
Magic III (#107 / #116 / #117)
- Little-endian ROM images are now detected and byteswapped on load; this along \
with a custom ROM address mapping fixes Triple Play failing to boot (#112)
- The emulator will now recognize the unconventionial region string \
"EUROPE" as meaning that the game only supports PAL/EU; this fixes \
Another World incorrectly defaulting to NTSC/US mode instead of
PAL/EU (#122)
- Unused bits in the Z80 BUSACK register ($A11100) now read approximate open \
bus instead of 0; this fixes Danny Sullivan's Indy Heat failing to boot (#120)
- Improved VDP DMA timing; this fixes corrupted graphics in OutRunners (#118)
- The vertical interrupt is now delayed by one 68000 instruction if a game \
enables vertical interrupts while a vertical interrupt is pending; this fixes \
Sesame Street: Counting Cafe failing to boot
(#119)
- The Z80 BUSACK line now changes immediately in response to bus arbiter \
register writes instead of waiting for the next Z80 instruction time slot; this \
fixes the Arkagis Revolution demo failing to
boot (#123)
- The emulator will now enable the bank-switching Super Street Fighter 2 mapper \
if the cartridge header declares the system as "SEGA DOA" in addition \
to the standard value of "SEGA SSF"; this fixes
the Demons of Asteborg demo not working properly (#115)
Other Fixes
- Fixed save state slots not working properly if the ROM filename contains \
multiple dots; before this fix, only one slot would ever be used
- (Sega CD) When a game issues a CDD command while the drive is playing, the \
drive now continues to read one more sector before it changes behavior in \
response to the new command; this fixes Radical
Rex crashing during the intro (#100)
- (Sega CD) Writes to PRG RAM by the main CPU and the Z80 are now blocked \
unless the sub CPU is removed from the bus; this fixes Dungeon Explorer from \
crashing after the title screen (#104)
- (Sega CD) The sub CPU is now halted if it accesses word RAM in 2M mode while \
word RAM is owned by the main CPU, and it remains halted until the main CPU \
transfers ownership back to the sub CPU.
This fixes glitched graphics in Marko's Magic Football (#101)
- (Sega CD) Various fixes to CDC register and DMA behavior; with this plus all \
of the above fixes, the emulator now fully passes the mcd-verificator test suite \
(#105)
- (NES) The UxROM mapper code (iNES mapper 2) no longer assumes that the \
cartridge has no PRG RAM; this fixes Alwa's Awakening: The 8-Bit Edition failing \
to boot (#93)
- (SNES) Adjusted timing of PPU line rendering to occur 4 mclk cycles later; \
this fixes Lemmings having a flickering line at the top of the screen during \
gameplay
- This worked correctly prior to v0.7.2 - it was broken by the CPU timing \
adjustment that fixed Rendering Ranger R2 from constantly freezing
- (GB) Fixed the window X condition incorrectly being able to trigger when \
WX=255 and fine X scrolling is used (SCX % 8 != 0); this fixes corrupted \
graphics in Pocket Family GB 2
- Fixed the emulator crashing if prescale factor is set so high that the \
upscaled frame size exceeds 8192x8192 in either dimension
|
2024-10-08 16:39:41 by Thomas Klausner | Files touched by this commit (6) |
Log message:
jgenesis: downgrade to 0.7.2
0.8.0 needs rust 1.80.1, which is not in pkgsrc HEAD yet
|
2024-10-06 15:19:15 by pin | Files touched by this commit (6) | |
Log message:
emulators/jgenesis: update to 0.8.0
Highlights
- Added support for 32X emulation (with a caveat regarding performance)
- Significant audio quality improvements for Genesis / Mega Drive and SNES
- Support for loading directly from .zip and .7z files
- Lots of Genesis / Mega Drive bugfixes
32X Notes
- All released 32X games plus Doom 32X Resurrection should be playable except \
for the 6 FMV games that require the Sega CD 32X combo
- Doom 32X Resurrection features that require Sega CD do not currently work \
(CD-DA music, offloading some audio processing to the Sega CD 68000)
- SH-2 CPU cache and basic SH-2 memory access timings are emulated, so overall \
SH-2 speed should be moderately accurate (though still faster than actual \
hardware in some cases)
- SH-2 emulation is currently not optimized well - full-speed 32X emulation \
requires a CPU with decent single-core performance, and fast-forward speed will \
be very limited
- For a comparison point, the Steam Deck CPU barely runs 32X at full speed \
from my testing
- This will likely improve in a future release - the current implementation \
is pure interpreter because that was easiest to implement and it (surprisingly) \
still runs at full speed with a fast enough host CPU
New Features
- Added support for loading directly from .zip and .7z compressed archives for \
every console except Sega CD (#91)
- Archives containing multiple images are only partially supported; in this \
case the emulator will always load the first file with a recognized file \
extension
- (SNES) Added an audio enhancement option for cubic Hermite interpolation \
between decoded ADPCM samples, which usually makes the audio sound sharper and \
less muffled
- The difference is most noticeable in games that use low sample rate \
audio, such as the Donkey Kong Country trilogy
- This is off by default because it pretty radically changes the sound in \
some games
- (Genesis) Added an option to have no controller plugged into one or both of \
the controller ports, for games that behave differently based on the presence or \
absence of a controller (#113)
- (NES) Added support for the UNROM 512 mapper (iNES mapper 30), a homebrew \
mapper used by a number of games including Black Box Challenge and Battle Kid 2 \
(#73 / #86)
- This mapper unusually supports flash memory mapped as PRG \
"ROM"; for the games that have this (e.g. Black Box Challenge), it's \
emulated by persisting the entire current contents of PRG ROM to the save file \
whenever the game modifies itself
- (GB) Added partial support for the Hudson HuC-3 mapper, used by Robopon and a \
few Japan-only games (#89)
- "Partial" because the builtin speaker, the IR sensor, and parts \
of the event/alarm functionality are not emulated
- GUI: Added a new "Open Using" menu option to open a file using a \
specific emulator core, rather than always choosing the core based on file \
extension (#121)
- GUI: Added an option to explicitly set the UI theme to light or dark rather \
than always using the system default
Improvements
- (Genesis) YM2612 DAC crossover distortion (aka the "ladder effect") \
is now emulated, which significantly improves music accuracy in a number of \
games; this is extremely noticeable in Streets of Rage, Streets of Rage 2, and \
After Burner II, among others
- There is also a new option to disable ladder effect emulation, since the \
effect was less pronounced on later console models (and also because I think \
it's neat to hear how it affects the sound by toggling a checkbox)
- (SMS/GG/Genesis) Replaced the PSG and YM2612 low-pass filters with much more \
aggressive ones; this should generally improve audio quality, and in some cases \
will remove erroneous buzzing/popping noises that were present before (e.g. in \
The Adventures of Batman & Robin) (#108)
- Improved audio output behavior for all emulator backends, which should \
significantly reduce the likelihood of audio pops caused by audio buffer \
underflow
- GUI: Added help text to most options menus
- GUI: Improved performance when the main list table is large
Genesis / Mega Drive Fixes
- Fixed the PSG's noise channel not oscillating when the period is set to 0 \
(which should behave the same as period of 1); this fixes missing high-frequency \
noise in Knuckles' Chaotix among other games
- Fixed a degenerate case for performance when a game repeatedly writes the \
same value to specific VDP registers during active display, as After Burner \
Complete does
- Fixed some 68000 CPU bugs discovered while working on 32X support
- Implemented line 1010/1111 exception handling for when the 68000 executes \
an illegal opcode where the highest 4 bits are 1010 or 1111; Zaxxon's Motherbase \
2000 depends on this to boot
- Fixed divide by zero exception handling pushing the wrong PC value onto \
the stack; After Burner Complete frequently divides by zero and depends on \
correctly handling the exception
- Fixed the DIVS instruction finishing way too quickly in some cases where \
the division overflows a signed 16-bit result but the CPU doesn't detect the \
overflow early
- Fixed an off-by-one error in determining whether to set the sprite overflow \
flag in the VDP status register; this fixes flickering sprite graphics in Alex \
Kidd in the Enchanted Castle (#125)
- This was a regression introduced in v0.6.1 as part of the changes to get \
Overdrive 2's textured cube effect working
- Adjusted how writes to the controller CTRL registers ($A10009 / $A1000B) \
affect the controller's TH line; this fixes controls not working properly in \
Trouble Shooter (#110)
- Made it possible for games to read the VINT flag in the VDP status register \
as 1 slightly before the 68000 INT6 interrupt is raised; this fixes Tyrants: \
Fight Through Time and Ex-Mutants failing to boot (#127)
- Implemented undocumented behavior regarding how the Z80 BIT instruction sets \
the S and P/V flags; this fixes missing audio in Ex-Mutants, which relies on \
this behavior in its audio driver code
- Implemented approximate emulation of memory refresh delay
- This is emulated by simply stalling the 68000 for 2 out of every 128 mclk \
cycles, unless it executes a very long instruction that doesn't access the bus \
mid-instruction (e.g. multiplication or division)
- Memory refresh delay is not emulated in 32X mode because it seemed to \
break audio synchronization between the Genesis and 32X hardware in some games
- Added SRAM mappings for several games that have SRAM in the cartridge but \
don't declare it in the cartridge header: NHL 96, Might and Magic, and Might and \
Magic III (#107 / #116 / #117)
- Little-endian ROM images are now detected and byteswapped on load; this along \
with a custom ROM address mapping fixes Triple Play failing to boot (#112)
- The emulator will now recognize the unconventionial region string \
"EUROPE" as meaning that the game only supports PAL/EU; this fixes \
Another World incorrectly defaulting to NTSC/US mode instead of PAL/EU (#122)
- Unused bits in the Z80 BUSACK register ($A11100) now read approximate open \
bus instead of 0; this fixes Danny Sullivan's Indy Heat failing to boot (#120)
- Improved VDP DMA timing; this fixes corrupted graphics in OutRunners (#118)
- The vertical interrupt is now delayed by one 68000 instruction if a game \
enables vertical interrupts while a vertical interrupt is pending; this fixes \
Sesame Street: Counting Cafe failing to boot (#119)
- The Z80 BUSACK line now changes immediately in response to bus arbiter \
register writes instead of waiting for the next Z80 instruction time slot; this \
fixes the Arkagis Revolution demo failing to boot (#123)
- The emulator will now enable the bank-switching Super Street Fighter 2 mapper \
if the cartridge header declares the system as "SEGA DOA" in addition \
to the standard value of "SEGA SSF"; this fixes the Demons of Asteborg \
demo not working properly (#115)
Other Fixes
- Fixed save state slots not working properly if the ROM filename contains \
multiple dots; before this fix, only one slot would ever be used
- (Sega CD) When a game issues a CDD command while the drive is playing, the \
drive now continues to read one more sector before it changes behavior in \
response to the new command; this fixes Radical Rex crashing during the intro \
(#100)
- (Sega CD) Writes to PRG RAM by the main CPU and the Z80 are now blocked \
unless the sub CPU is removed from the bus; this fixes Dungeon Explorer from \
crashing after the title screen (#104)
- (Sega CD) The sub CPU is now halted if it accesses word RAM in 2M mode while \
word RAM is owned by the main CPU, and it remains halted until the main CPU \
transfers ownership back to the sub CPU. This fixes glitched graphics in Marko's \
Magic Football (#101)
- (Sega CD) Various fixes to CDC register and DMA behavior; with this plus all \
of the above fixes, the emulator now fully passes the mcd-verificator test suite \
(#105)
- (NES) The UxROM mapper code (iNES mapper 2) no longer assumes that the \
cartridge has no PRG RAM; this fixes Alwa's Awakening: The 8-Bit Edition failing \
to boot (#93)
- (SNES) Adjusted timing of PPU line rendering to occur 4 mclk cycles later; \
this fixes Lemmings having a flickering line at the top of the screen during \
gameplay
- This worked correctly prior to v0.7.2 - it was broken by the CPU timing \
adjustment that fixed Rendering Ranger R2 from constantly freezing
- (GB) Fixed the window X condition incorrectly being able to trigger when \
WX=255 and fine X scrolling is used (SCX % 8 != 0); this fixes corrupted \
graphics in Pocket Family GB 2
- Fixed the emulator crashing if prescale factor is set so high that the \
upscaled frame size exceeds 8192x8192 in either dimension
|
2024-08-12 08:31:50 by Thomas Klausner | Files touched by this commit (6) |
Log message:
emulators/jgenesis: import jgenesis-0.7.2
Packaged by pin@ in wip.
Cross-platform multi-console emulator supporting a number of 8-bit and 16-bit
gaming consoles.
Features:
- Emulation for the following consoles:
- Sega Genesis / Mega Drive
- Sega CD / Mega CD
- Sega Master System / Mark III
- Game Gear
- Nintendo Entertainment System (NES) / Famicom
- Super Nintendo Entertainment System (SNES) / Super Famicom
- Game Boy / Game Boy Color
|