Skip to content

va7deo/TerraCresta

Repository files navigation

Nichibutsu M68000 (Terra Cresta) FPGA Implementation

FPGA compatible core of Nichibutsu M68000 (Terra Cresta Based) arcade hardware for MiSTerFPGA written by Darren Olafson. Terra Cresta YM2203 OPN Type PCB donated by @atrac17 / @djhardrich.

The goal for this implementation is gameplay to be 1:1 of the Nichibutsu (Terra Cresta based) 68000 hardware. This core was developed with assistance from atrac17.

Nichibutsu TC

Supported Games

Title Status Released Protection Protected Sets
Terra Cresta Implemented Y None N/A
Sei Senshi Amatelass Implemented Y NB1412M2 amatelass, amazon
Kid no Hore Hore Daisakusen Implemented Y NB1412M2 horekid

External Modules

Name Purpose Author
fx68k Motorola 68000 CPU Jorge Cwik
t80 Zilog Z80 CPU Daniel Wallner
jtopl Yamaha OPL Jose Tejada

Known Issues

  • Clock domains need to be verified
  • H/V clock timing for CRT need to be verified
  • Palette issue (wrong colors, stray green/tan lines)
  • Sprite flip on boss (right arm)
  • Dot Crawl on Y/C video output
  • Map Test / Service to keyboard handler
  • Service Menu (push button service menu) in Kid no Hore Hore Daisakusen
  • Additional debugging features (layer toggle)
  • Protection IC NB1412M2 implementation
  • Input swap on amatelass, amazon, horekidb
  • Sprite / Tile offsets in Kid no Hore Hore Daisakusen (screen transitions)
  • Screen Flip implementation
  • Sprite Clipping

Remaining Tasks

  • Reverse engineer Terra Cresta and provide schematics

PCB Check List

FPGA implementation is based on Terra Cresta and will be verified against the YM2203 PSG Type PCB with a YM3526 swap. Reverse engineering of an authentic Terra Cresta PCB will be done by Darren Olafson; schematics will be included in the repository.

Clock Information

H-Sync V-Sync Source
15.625kHz 59.323592Hz DSLogic +

Crystal Oscillators

Location Freq (MHz) Use
2 16.000 M68000
X1 12.000 Z80 / YM3526

Pixel clock: 6.00 MHz

Estimated geometry:

384 pixels/line

263 pixels/line

Main Components

Location Chip Use
I C (Top Board) Motorola 68000 CPU Main CPU
17 D (Bottom Board) Zilog Z80 CPU Sound CPU
20 D (Bottom Board) Yamaha YM3526 OPL

Nichibutsu Custom Components

Location Chip Use PCB ROM set
15 G (Top Board) NB1412M42 Protection IC Sei Senshi Amatelass

Kid no Hore Hore Daisakusen
amatelass, amazon, amazont

horekid

PCB Features

Game Debugging

Sei Senshi AmatelassDebugging Features [amatelass, amazon, amazont]

Dip switch 7 on bank 1 enables invincibility. When enabled, overclocking the framerate
is possible by holding the 2P Start Bttn or enabling turbo in the OSD.

Kid no Hore
Hore Daisakusen
Debugging Features [horekid, horekidb1, horekidb2]

Debug Mode and cabinet Upright dip switches are set to default. When enabled,
you will be able to access the following debug features:

Level Selection: insert a coin and press P2 Bttn 1 and 2. In the bottom right corner,
00 will be displayed. Pressing P2 Bttn 1 and 2 and P1 1 Bttn 1 increases the level.
Pressing P2 Bttn 1 and 2 and P1 Bttn 2 decreases the level. Press P1 start after
choosing your level selection.

Invincibility and Infinite Time are set by inserting a coin and pressing P2 Bttn 1,
P2 Bttn 2 and P1 Start Bttn.

To enable the debug level select, set your level prior to enabling these debug features.


GFX Layer Toggle

  • The three graphical layers can be toggled in the OSD under the Debug options or by pressing
    F7-F9 on the keyboard.

Layer Debug
All LayersForegroundBackgroundSprites

Sprite Flip on Axis Toggle

  • To enable sprite flip, in the OSD under the Debug options enable
    the toggle.

Sprite Flip
All Layers Sprite Flip X-AxisSprite Flip Y-Axis

Control Layout

Game Joystick Service Menu Shared Controls Dip Default
Terra Cresta 8-Way

Upright Table
Sei Senshi Amatelass 8-Way

Upright Table
Kid no Hore Hore Daisakusen 4-Way

No Upright

  • Upright cabinet shares a 1L2B control panel layout. Players are required to switch controller. The default cabinet style is set to table for Terra Cresta and Sei Senshi Amatelass. This enables multiple player controllers.

Keyboard Handler

  • Keyboard inputs mapped to mame defaults for all functions with additional keys for layer toggles.

Services Coin/Start
FunctionsKeymap
TestF2
ResetF3
Service9
PauseP
FunctionsKeymap
P1 Start1
P2 Start2
P1 Coin5
P2 Coin6
Player 1 Player 2
FunctionsKeymap
P1 UpUp
P1 DownDown
P1 LeftLeft
P1 RightRight
P1 Bttn 1L-Ctrl
P1 Bttn 2L-Alt
FunctionsKeymap
P2 UpR
P2 DownF
P2 LeftD
P2 RightG
P2 Bttn 1A
P2 Bttn 2S
Debug
FunctionsKeymap
Layer (FG)F7
Layer (BG)F8
Layer (SP)F9

Support

Please consider showing support for this and future projects via Ko-fi. While it isn't necessary, it's greatly appreciated.

Licensing

Contact the author for special licensing needs. Otherwise follow the GPLv2 license attached.

About

Nichibutsu Terra Cresta for MiSTerFPGA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published