mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
k037122.cpp: Update hardware information (#6759)
* k037122.cpp: Update hardware information hornet.cpp: Add screen raw parameters (verified in both voodoo and K037122 display timing parameters), Add notes * k037122.cpp: Adjust value in display timing is still unknown * k037122.cpp: Adjust display timing register
This commit is contained in:
parent
57da50ab51
commit
3ba42de527
@ -1157,7 +1157,7 @@ void hornet_state::hornet(machine_config &config)
|
||||
// PCB description at top doesn't mention any EEPROM on the base board...
|
||||
// EEPROM_93C46_16BIT(config, "eeprom");
|
||||
|
||||
VOODOO_1(config, m_voodoo[0], STD_VOODOO_1_CLOCK);
|
||||
VOODOO_1(config, m_voodoo[0], XTAL(50'000'000));
|
||||
m_voodoo[0]->set_fbmem(2);
|
||||
m_voodoo[0]->set_tmumem(4,0);
|
||||
m_voodoo[0]->set_screen_tag("screen");
|
||||
@ -1168,10 +1168,8 @@ void hornet_state::hornet(machine_config &config)
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
// Screeen size and timing is re-calculated later in voodoo card
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_size(64 * 8, 48 * 8);
|
||||
screen.set_visarea(0, 64 * 8 - 1, 0, 48 * 8 - 1);
|
||||
// default 24KHz parameter in both 037122 and voodoo, input clock correct? (58~Hz Vsync, 50MHz/3 or 64MHz/4?)
|
||||
screen.set_raw(XTAL(64'000'000) / 4, 644, 41, 41 + 512, 428, 27, 27 + 384);
|
||||
screen.set_screen_update(FUNC(hornet_state::screen_update));
|
||||
|
||||
PALETTE(config, "palette").set_entries(65536);
|
||||
@ -1223,13 +1221,13 @@ void hornet_state::sscope(machine_config &config)
|
||||
m_k037122_1->set_screen("lscreen");
|
||||
m_k037122_1->set_palette("palette");
|
||||
|
||||
K037122(config, m_k037122_2, 0);
|
||||
K037122(config, m_k037122_2, 0); // unknown input clock
|
||||
m_k037122_2->set_screen("rscreen");
|
||||
m_k037122_2->set_palette("palette");
|
||||
|
||||
m_voodoo[0]->set_screen_tag("lscreen");
|
||||
|
||||
VOODOO_1(config, m_voodoo[1], STD_VOODOO_1_CLOCK);
|
||||
VOODOO_1(config, m_voodoo[1], XTAL(50'000'000));
|
||||
m_voodoo[1]->set_fbmem(2);
|
||||
m_voodoo[1]->set_tmumem(4, 0);
|
||||
m_voodoo[1]->set_screen_tag("rscreen");
|
||||
@ -1242,17 +1240,13 @@ void hornet_state::sscope(machine_config &config)
|
||||
config.device_remove("screen");
|
||||
|
||||
screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER));
|
||||
// Screeen size and timing is re-calculated later in voodoo card
|
||||
lscreen.set_refresh_hz(60);
|
||||
lscreen.set_size(512, 384);
|
||||
lscreen.set_visarea(0, 512 - 1, 0, 384 - 1);
|
||||
// default 24KHz parameter in both 037122 and voodoo, input clock correct? (58~Hz Vsync, 50MHz/3 or 64MHz/4?)
|
||||
lscreen.set_raw(XTAL(64'000'000) / 4, 644, 41, 41 + 512, 428, 27, 27 + 384);
|
||||
lscreen.set_screen_update(FUNC(hornet_state::screen_update));
|
||||
|
||||
screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER));
|
||||
// Screeen size and timing is re-calculated later in voodoo card
|
||||
rscreen.set_refresh_hz(60);
|
||||
rscreen.set_size(512, 384);
|
||||
rscreen.set_visarea(0, 512 - 1, 0, 384 - 1);
|
||||
// default 24KHz parameter in both 037122 and voodoo, input clock correct? (58~Hz Vsync, 50MHz/3 or 64MHz/4?)
|
||||
rscreen.set_raw(XTAL(64'000'000) / 4, 644, 41, 41 + 512, 428, 27, 27 + 384);
|
||||
rscreen.set_screen_update(FUNC(hornet_state::screen_update_rscreen));
|
||||
|
||||
/* ADC12138(config, m_adc12138_2, 0);
|
||||
|
@ -2,6 +2,60 @@
|
||||
// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont
|
||||
/*
|
||||
Konami 037122
|
||||
|
||||
This chip has CLUT, CRTC, Variable size single tilemap
|
||||
|
||||
Color lookup table is 16 bit BRG format, total 8192 entries (256 color per each tile * 32 banks))
|
||||
|
||||
Color format (4 byte (1x32bit word) per each color)
|
||||
Bits Description
|
||||
fedcba9876543210 fedcba9876543210
|
||||
---------------- xxxxx----------- Blue
|
||||
---------------- -----xxxxx------ Red
|
||||
---------------- ----------xxxxxx Green
|
||||
|
||||
Tilemap is can be rotated, zoomed, similar as K053936 "simple mode"
|
||||
Tilemap size is 256x64 (2048x512 pixels) or 128x64 (1024x512 pixels), Each tile is 8bpp 8x8.
|
||||
|
||||
Tile format (4 byte (1x32bit word) per each tile)
|
||||
Bits Description
|
||||
fedcba9876543210 fedcba9876543210
|
||||
--------x------- ---------------- Flip Y
|
||||
---------x------ ---------------- Flip X
|
||||
----------xxxxx- ---------------- CLUT Bank index (256 color granularity)
|
||||
---------------- --xxxxxxxxxxxxxx Tile code (from character RAM, 8x8 pixel granularity (128 byte))
|
||||
|
||||
Other bits unknown
|
||||
|
||||
Register map
|
||||
00-0f Display timing
|
||||
20-2f Scroll/ROZ register
|
||||
30-3f Control, etc
|
||||
|
||||
Offset Bits Description
|
||||
fedcba9876543210 fedcba9876543210
|
||||
00 xxxxxxxxxxxxxxxx ---------------- Horizontal total pixels - 1
|
||||
---------------- xxxxxxxxxxxxxxxx Horizontal sync width - 1
|
||||
04 xxxxxxxxxxxxxxxx ---------------- Horizontal front porch - 5
|
||||
---------------- xxxxxxxxxxxxxxxx Horizontal back porch + 5
|
||||
08 xxxxxxxxxxxxxxxx ---------------- Vertical total pixels - 1
|
||||
---------------- xxxxxxxxxxxxxxxx Vertical sync width - 1
|
||||
0c xxxxxxxxxxxxxxxx ---------------- Vertical front porch + 1
|
||||
---------------- xxxxxxxxxxxxxxxx Vertical back porch - 2
|
||||
20 sxxxxxxxxxxxxxxx ---------------- X counter starting value (12.4 fixed point)
|
||||
---------------- sxxxxxxxxxxxxxxx Y counter starting value (12.4 fixed point)
|
||||
24 ---------------- sxxxxxxxxxxxxxxx amount to add to the Y counter after each line (4.12 fixed point)
|
||||
28 sxxxxxxxxxxxxxxx ---------------- amount to add to the X counter after each horizontal pixel (4.12 fixed point)
|
||||
30 ---------------x ---------------- VRAM mapping mode
|
||||
---------------0 ---------------- CLUT at 0x00000-0x08000, Display tilemap area at 0x08000-0x18000 (256x64)
|
||||
---------------1 ---------------- CLUT at 0x18000-0x20000, Display tilemap area at 0x00000-0x08000 (128x64)
|
||||
---------------- -------------xxx Character RAM bank
|
||||
|
||||
Other bits/registers unknown, some registers are used
|
||||
|
||||
TODO:
|
||||
- verify and implement scroll, ROZ, display timing registers
|
||||
- verify other unknown but used registers
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
|
@ -11,6 +11,8 @@ class k037122_device : public device_t,
|
||||
public device_gfx_interface
|
||||
{
|
||||
public:
|
||||
static constexpr feature_type imperfect_features() { return feature::GRAPHICS; } // unimplemented tilemap ROZ, scroll registers
|
||||
|
||||
k037122_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// configuration
|
||||
|
Loading…
Reference in New Issue
Block a user