diff options
author | MetalliC <0vetal0@gmail.com> | 2017-09-15 03:48:11 +0300 |
---|---|---|
committer | MetalliC <0vetal0@gmail.com> | 2017-09-15 03:48:11 +0300 |
commit | f589b96abbe1b75d63f15b773124e1940a88ae8f (patch) | |
tree | e99f262e5944c0d9b613549f4eb822ae71c35249 /src/mame/drivers/dccons.cpp | |
parent | 97feb7f3304e4a3b7a375d6e796b9d81f63c8ada (diff) |
dccons.cpp: documented Dreamcast flash ROM structure
Diffstat (limited to 'src/mame/drivers/dccons.cpp')
-rw-r--r-- | src/mame/drivers/dccons.cpp | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp index 8f23ed76fd4..4f21c9f4495 100644 --- a/src/mame/drivers/dccons.cpp +++ b/src/mame/drivers/dccons.cpp @@ -654,8 +654,42 @@ MACHINE_CONFIG_END ROM_LOAD_BIOS(3, "dc101d_ch.bin", 0x000000, 0x200000, CRC(a2564fad) SHA1(edc5d3d70a93c935703d26119b37731fd317d2bf) ) // ^^^ dc101d_eu.bin ^^^ is selfmade chinese translation, doesn't work on real hardware, does it must be here at all ? -// note: Dreamcast Flash ROMs actually 256KB MBM29F002TC (VA0) or MBM29LV002TC (VA1) devices, only 2nd 128KB half is used, A17 pin tied to VCC -// sector SA5 (1A000 - 1BFFF) is read-only, contain factory information (region, broadcast, serial number, etc) +/* note: Dreamcast Flash ROMs actually 256KB MBM29F002TC (VA0) or MBM29LV002TC (VA1) devices, only 2nd 128KB half is used, A17 pin tied to VCC + sector SA5 (1A000 - 1BFFF) is read-only, contain information written during manufacture or repair, fully generated by software tool (except predefined list of creators) +struct factory_sector +{ + struct factory_record { + // everything 'char' below is decimal numbers in ASCII, unless noted else + char machine_code1; // '0' - Dreamcast, 0xFF - dev.box + char machine_code2; // '0' - Dreamcast, 0xFF - dev.box + char country_code; // 0 - Japan, 1 - America, 2 - Europe + char language; // 0 - Japanese, 1 - English, etc + char broadcast_format; // 0 - NTSC, 1 - PAL, 2 - PAL-M, 3 - PAL-N + char machine_name[32]; // ASCII text 'Dreamcast', trail is 0x20 filled + char tool_number[4]; // software tool # + char tool_version[2]; // software tool version + char tool_type[2]; // software tool type: 0 - MP(mass production?), 1 - Repair + char year[4]; + char month[2]; + char day[2]; + char hour[2]; + char min[2]; + char serial_number[8]; + char factory_code[4]; + char total_number[16]; + uint8_t sum; // byte sum of above + uint8_t machine_id[8]; // 64bit UID + uint8_t machine_type; // FF - Dreamcast + uint8_t hardware_version; // FF - VA0, FE - VA1, FD - VA2, NOTE: present in 1st factory record only, in 2nd always FF + } factory_records[2]; // 2 copies + uint8_t unused_0[0x36]; // FF filled + uint8_t unk_version; // not clear if hardware or bios version, A0 - VA0, 9F - VA1, 9E - VA2 + uint8_t unused_1[9]; // FF filled + char staff_roll[0xca0]; // list of creators + uint8_t unused_2[0x420]; // FF filled + uint8_t random[0xdc0]; // output of RNG {static u32 seed; seed=(seed*0x83d+0x2439)&0x7fff; return (u16)(seed+0xc000);}, where initial seed value is serial_number[7] & 0xf +}; +*/ ROM_START(dc) DREAMCAST_COMMON_BIOS |