Friday, November 3, 2017

Analogue Nt Mini - Browsing the Core Store

In part one of my Analogue Nt Mini series, I focused on the impressions I had of the hardware and the menu from the "official" standpoint.  In the second part, I focused on the most notable feature of the Nt Mini's jailbreak firmware, the NES Flash Cart capability.  In this part, I will discuss the other area in which the Nt Mini's jailbreak firmware is very impressive, Cores recreating other video game consoles.  The Nt Mini can recreate the hardware of many classic (and not so classic) 8-bit consoles like the Atari 2600, Sega Master System and the Game Boy by loading a Core into the FPGA.  Let's talk about what happens when you want to run games with one of these cores.




Virtually every Core supported by the Nt Mini will require a BIOS to run.  Some BIOSes can be easy to track down, others are much more obscure.  A gentleman named Smokemonster has put together a BIOS pack containing functional BIOSes for every Core.  The pack is not necessarily a comprehensive collection of BIOSes for every system, but they will serve to get Cores up and running.

Some of the observations made below may seem like nitpicking, but that is not the intent.  These Cores are world-class and that they exist at all on the Nt Mini is something every Nt Mini owner should be grateful to kevtris as I am for releasing them.  He did not have to lift a finger to release anything and the Core Store was not part of the official pre-order pitch.  Some of this information can be found in the Release Notes for each Core found in the jailbreak firmware.  Observations are made as of jailbreak 2.0, the last jailbreak release before kevtris committed to the Super Nt.

Game Boy and Game Boy Color

Pinball Fantasies (released in Europe as Pinball Deluxe) and Pinball Mania (Europe only) will crash soon on starting a table.  This is a "holy-grail" bug, https://mgba.io/2017/05/29/holy-grail-bugs/, whose cause has only recently been found : https://www.reddit.com/r/EmuDev/comments/7206vh/sameboy_now_correctly_emulates_pinball_deluxe/  Kevtris identified Pinball Dreams in his Gameboy Release Notes.txt, but I believe he is really talking about Pinball Fantasies.  Pinball Dreams is in the same series as the troublesome pinball games but does not present issues with emulators or the Nt Mini.  Games with Real Time Clock support will work, but the time you enter will not save.

The Game Boy core can load a scrolling "Nintendo" BIOS or a static "Nintendo" BIOS (from the Super Game Boy).  The static BIOS will speed up game loading time.

The Game Boy/Game Boy Color Cores runs in 60.0Hz through HDMI and 60.0988 through analog video.  Real Game Boy runs at 59.7275 so a frame buffer is used for HDMI.  The single buffer option will reduce latency at cost of some screen tearing in scrolling games.

Game Boy Color core will play Game Boy ROMs.  The Game Boy and the Game Boy Color use the same core, so switching between them does not require a full core load.

You cannot change palette in Game Boy core.  You can use the Game Boy Color BIOS to change the palettes as allowed by that BIOS.  Game Boy games with custom Game Boy Color palettes as implemented through the Game Boy Color BIOS are supported.

You can get up to a 7x/7x scale with square pixels.  In 1080p mode, horizontal stretch is 1x-12x and vertical stretch is 1x-~7.5x.  720p is 8x/5x and 480p is up to a ~4.5x/3x.

The Game Boy Color core is sufficiently accurate that Road Rash will crash when staring a race as it would on a real Game Boy Color or Advance.  However, there are some timing issues in this Core that may manifest themselves.  Fortunately these are rare for games.  It won't show correct images for the Game Boy Color Video Player, available here : https://github.com/LIJI32/GBVideoPlayer.

The Game Boy Color core cannot fool a game into thinking it is being run on a Game Boy Advance.  Some games like Shantae and the The Legend of Zelda: Oracle of Time and Oracle of Seasons games take advantage of this.  Hacks for these games to force them to run in "GBA Enhanced Mode" can be found on ROMhacking.net.

Atari 2600 and Atari 7800

The Atari 2600 Core is a diamond in the rough.  The Core only supports joystick controllers through an NES gamepad, paddles, driving controllers and keyboard controllers are not supported.  The Atarivox is supported, but unless you have some way to dump the ROMs for the voice chip, the feature will be useless.  The 2600 Core does not yet support the Atarivox's save game feature.

Virtually all games are supported but some of them will require a change in their filename extension to work correctly with the Nt Mini's flashcart.  Atari 2600 ROMs do not have headers and the Nt Mini does not have the ability to lookup a game's hardware by matching it with a CRC32 value.  Many Atari 2600 games used bankswitching schemes to access more than 4KB of cartridge ROM, and while the Nt Mini's 2600 Core can detect many of these games by size alone, it cannot detect all of the various schemes. 

The digital video and audio is very high quality.  Graphics are cleanly scaled from 160 pixels and 240 lines in NTSC mode.  The TIA audio supports the speech in games like Quadrun.  Pitfall 2's cartridge-based audio is also supported.  A frame buffer is necessary in HDMI mode because Atari 2600 games do not have a set frame rate.  The programmer sets the frame rate by the number of lines his or her program draws on the screen.  One game can have 59fps, another can have 56, a third can have 61 and a fourth can have 64 frames per second.

The analog video uses the same RGB-generated palette used for digital video, even for S-Video and Composite video, instead of recreating the NTSC video of the 2600's TIA.  By contrast, the NES Core does recreate the NTSC video of its PPU.  Unlike the NES, a custom 2600 palette cannot be loaded.

The issue with all analog video in the 2600 Core is that it is generated for a 256-pixel wide mode, not a 160/320 pixel wide mode.  This makes the image a combination of wide and narrow pixels.  A true 2600 has pixels of equal size across the scanline.  Digital video from HDMI does not have this issue.

In order to fully access the console switches of the Atari 2600, you need two controllers with shoulder buttons.  The Left Difficulty switch is mapped to the shoulder buttons of Controller 1 and the Right Difficulty switch is mapped to the shoulder buttons of Controller 2.  Unfortunately, if you do not have two such controllers, one of the difficulty switches is not going to be very accessible to you.  I wish there was a setting in the Core menu to toggle the Difficulty and the Color/B&W switches, or in the alternative, to map the Right Difficulty switch to the Start and Select buttons of Controller 2. While there is a Swap Controllers function in the Core Settings, you have to reload your ROM for the settings to have any effect, limiting its usefulness to address this issue.

The Atari 7800 Core does support a 320 mode, so its graphics have a greater fidelity to the original console than the 2600 Core does.  Unfortunately you cannot run 2600 games on the 7800 Core, unlike the Game Boy Color.  A cartridge POKEY chip is supported for the two commercial games and the homebrew which have one.  Light gun games are not supported.

In analog video, the composite artifact colors that Tower Toppler is meant to display are shown when using composite video output and the latest firmware.  Xenophobe has an issue with flickering lines and the official diagnostic cartridge does not work, but the Core is very solid otherwise.  A few games are floating around with some incorrect headers, so look in the Atari 7800 Release Notes.txt on how to fix them.

Sega Master System and Game Gear

The Sega Master System Core only supports a gamepad.  The paddle controller, sports pad, drawing tablet and the light gun are not supported.  Nor are the 3-D glasses or the keyboard of the SC-3000.  SC-1000 games are supported, load no BIOS for them.

The BIOS options for the Sega home consoles is a rather complicated subject.  The TL:DR version is that US and European SMS BIOSes check games for a valid header in the ROM and refuse to boot if they do not find it.  The Game Gear BIOS, found in late models of the Game Gear, does the same thing.   Most Japanese Mark III and SMS games do not have this header, nor do earlier SG-1000/3000 games.  Japanese systems either do not have a BIOS (SG-1000, SG-3000 and Mark III) or do not check for headers (Japanese SMS).  If your game refuses to load, disable the BIOS in the Core Settings and reload the ROM.  However, some games rely on the BIOS to set up the system and will not work correctly or at all if the BIOS is not loaded to do its thing.

The Smokemonster Nt Mini BIOS pack comes with four BIOSes, and here is what they are : 

smsbios.bin = US/Europe v1.3
smsbios2.bin = Japan v2.1
smsbios3.bin = Europe Sonic the Hedgehog
smsbios4.bin = US/Europe v3.4 Hang-On

kevtris recommends using the Japanese BIOS, and the suggestion is a good one for most games.  The Japanese BIOS shows no splash screen and sounds no jingle, which can become really annoying.

One of the best features of this Core is its YM2143 FM Synthesis support, which can be enabled or disabled in the Core Settings.  67 games for the Sega Mark III & Master System support FM sound, but Phantasy Star, Y's The Vanished Omens and Wonder Boy III: The Dragon's Trap need either a translation patch or a hack to play the game in English with FM support.  FM Sound effects may sound off.  Some non-FM games may require the FM to be disabled to work.  Sampled audio from the PSG will sound good on this Core.

There are a few games from Codemasters and hail from Korea that will need their file extension changed to make them work correctly.

PAL does not work on any Core other than the NES Core, so Master System PAL-only games will either not work or will be glitchy : http://www.smspower.org/Tags/PALOnly  Some PAL games use 224-lines instead of the regular 192-line mode, you can forget about those extra lines at this time.  GP Rider is too glitchy to play due to all the flicker and garbage tiles.  The Master System shares the same resizing settings as the NES core.

If you want to play the Snail Maze game built into some of the BIOSes, first make sure that smsbios.bin is selected in the Core Settings, then run the BIOS as a ROM.  Press both buttons and up to access the game.

The Game Gear is a bit more simple than the Master System.  You may want to load a BIOS if some games are not working.

Rise of the Robots will have a glitchy background but is playable.  Some games like Power Driver and Super Monaco GP II rely on the slow LCD persistence of the passive-matrix LCD screen of the Game Gear and will show flickering graphics in places.   Games running in the Master System compatibility mode : http://www.smspower.org/Tags/SMS-GG, should be run in the Master System Core.  The Game Gear and Master System Cores use the same core, so switching between them is quick.  Similar to the Master System, some Codemasters' games and Korean games will need to have their file extensions renamed to work.

The Game Gear shares the same resolution of a Game Boy, but the video mode is the same mode as used by the Master System.  So are the resizing settings, so your picture is not likely to fill as much of the screen as the Game Boy.  A 5x scale in 1080p is the best you can get with the Game Gear, but no lines will be masked off.  All the available TV output mods for a real Game Gear windowbox the graphics within a Master System frame.  Given that the Game Gear is a Master System with a 160x144 window within a 256x192 frame, I would not expect this to change.

When it comes to video output, the Master System and Game Gear are pretty good until you get to composite video.  In composite video, there is heavy composite artifacting, even the menus are affected.  By this mode, you will see "pixel squiggles".  I do not see these issues on a Model 1 Genesis running through a Power Base Converter or with a Mega EverDrive running Master System ROMs.  To be fair, I do not own a true Master System, and according to Chris Covell, the composite picture quality of a real U.S. Master System is worse than a Japanese system or a Genesis : http://www.chrismcovell.com/gotRGB/dincable.html

Colecovision

Being that the Sega SG-1000 and the Colecovision are practically brothers in terms of hardware, the Coleco core loads fast if the Sega core is loaded.  Smokemonster's BIOS ROMs have three ROMs you can choose from :

colbios.bin = Unofficial Coleco BIOS (can bypass the waiting, uses a stylized font)
colbios2.bin = Official Coleco BIOS
colbios3.bin = Bit Corp.'s clone BIOS

You can only play games using the standard controller, the steering wheel, the super action controller (with four buttons) and roller controller trackball will not work.  The real ColecoVision controller has an eight-way joystick, two action buttons and a 12-digit numberpad.  On the 8bitdo controller, the joystick maps to the D-Pad and Y and B buttons to the action buttons.  The Start button is 1, the Select button is 3, the X button is # and the A button is *.  This will allow most games to start.  Other buttons can be pressed by combinations of the Left and/or Right triggers on the 8bitdo gamepad.  The Coleco does not appear to make heavy use of the numberpad beyond the game select screens.  Look for Coleco overlays to figure out if a game you want to play makes heavy use of the numberpad.

Some games would be very cumbersome to play with the 8bitdo gamepad, fortunately there are two alternatives that you can use and have a numberpad.  The first is the Famicom Network Controller, which came bundled with the Famicom Modem.  This will plug in directly into the Famicom Expansion Port on the back of the Nt Mini.  The second is the NTT Super Famicom Data Controller, which was used with the Super Famicom Modem.  This will require a SNES to NES adapter to get working with the Nt Mini, and that is an adapter you will likely have to make on your own.  This site sells them, but the photo shows some rather poor heat-shrink tubing in the area where the two cables are soldered together : http://www.raphnet-tech.com/products/snes_to_nes_cable/index.php If you have a desire to use two controllers with numberpads, the NTT Super Famicom controllers are easier to find.  With a Famicom Expansion Port Four Player Y-Adapter, I believe you could get two Famicom Modem controllers to work as a pair of full Coleco controllers.

The last piece of advice for this core is to use the CV ROM Update Project ROMs from here :  http://www.colecovision.ca/roms_cvupdate.php  Coleco ROM dumping has been something of back-burner thing for the past two decades and bad dumps have not always been weeded out of the more established Good and No-Intro sets.  Choplifter and Montezuma's Revenge have been confirmed to work correctly using the ROMs included in the CV ROM Update Project.

There have been many homebrew games released for the Colecovision, the hardware designer of the Nt Mini, kevtris, released the first eponymous homebrew game for the Coleco was back in 1996.  Most homebrew since 2008 requires the use of the Super Game Module, an expansion module that plugs into a ColecoVision and adds 32KB of RAM and an AY-3-8910 sound chip.  The Nt Mini does not implement the Super Game Module at this time, so those homebrew games will not be playable on the Nt Mini.

Next Time

I have not given my thoughts yet on every core available on the Nt Mini.  The remaining cores are fairly marginal in terms of the quality of games for these systems.  I might talk about them in what I anticipate to be the final installment in my series of articles on the Nt Mini.  But I anticipate my final installment will discuss some aspects of the system which are important to me and have not been comprehensively explored elsewhere.

1 comment:

SmokeMonster said...

Great article! Now that I'm a gentleman, I'm going to need a coat of arms and fancy hats :D