summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2019-07-29 21:54:36 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2019-07-29 21:54:36 +0200
commit421e97cc5aadb67cee51775b86bf3a04013c6464 (patch)
treee827b7c0ad5102b06914b1ca3fe395950598ba87
parent6eb937b4d759380a79c4d0fef107e96ff3afac63 (diff)
goldstar.cpp: correct bitswaps for roypok96c. Now stuck at Program Check screen. (nw)
-rw-r--r--src/mame/drivers/goldstar.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index 7d8122c601d..d2b9ce69353 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -16636,7 +16636,7 @@ void cmaster_state::init_rp36c3()
m_maincpu->space(AS_IO).install_read_handler(0x17, 0x17, read8_delegate(FUNC(cmaster_state::fixedval48_r), this));
}
-void cmaster_state::init_rp96sub() // 95 33 95 33 70 6C 70 6C... XORs seem ok. need bitswap and handler.
+void cmaster_state::init_rp96sub() // 95 33 95 33 70 6C 70 6C... XORs and bitswaps seem ok. Stuck at Program Check screen. Unlike the other sets, there aren't unmapped reads where to put the handler.
{
uint8_t *ROM = memregion("maincpu")->base();
for (int i = 0; i < 0x10000; i++)
@@ -16645,10 +16645,10 @@ void cmaster_state::init_rp96sub() // 95 33 95 33 70 6C 70 6C... XORs seem ok.
switch (i & 5)
{
- case 0: x = bitswap<8>(x ^ 0x6a, 7, 6, 5, 4, 3, 2, 1, 0); break;
- case 1: x = bitswap<8>(x ^ 0xcc, 7, 6, 5, 4, 3, 2, 1, 0); break;
- case 4: x = bitswap<8>(x ^ 0x8f, 7, 6, 5, 4, 3, 2, 1, 0); break;
- case 5: x = bitswap<8>(x ^ 0x93, 7, 6, 5, 4, 3, 2, 1, 0); break;
+ case 0: x = bitswap<8>(x ^ 0x6a, 2, 1, 0, 7, 6, 5, 4, 3); break;
+ case 1: x = bitswap<8>(x ^ 0xcc, 0, 7, 6, 5, 4, 3, 2, 1); break;
+ case 4: x = bitswap<8>(x ^ 0x8f, 3, 2, 1, 0, 7, 6, 5, 4); break;
+ case 5: x = bitswap<8>(x ^ 0x93, 4, 3, 2, 1, 0, 7, 6, 5); break;
}
ROM[i] = x;