GB: implement the undefined opcodes. according to sources, they completely lock up the machine; so they are emulated as DI; <repeat last opcode>, which should do the trick? testing needed. thanks to sanqui for pointing this out
This commit is contained in:
parent
d87978087d
commit
5ecc74c435
|
@ -2512,6 +2512,8 @@ void CPU::process(const unsigned long cycles) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xD3: /*doesn't exist*/
|
case 0xD3: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//call nc,nn (24;12 cycles):
|
//call nc,nn (24;12 cycles):
|
||||||
|
@ -2578,6 +2580,8 @@ void CPU::process(const unsigned long cycles) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xDB: /*doesn't exist*/
|
case 0xDB: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//call z,nn (24;12 cycles):
|
//call z,nn (24;12 cycles):
|
||||||
|
@ -2591,6 +2595,11 @@ void CPU::process(const unsigned long cycles) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0xDD: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
|
break;
|
||||||
|
|
||||||
case 0xDE:
|
case 0xDE:
|
||||||
{
|
{
|
||||||
unsigned data;
|
unsigned data;
|
||||||
|
@ -2626,8 +2635,12 @@ void CPU::process(const unsigned long cycles) {
|
||||||
FF_WRITE(0xFF00 | C, A);
|
FF_WRITE(0xFF00 | C, A);
|
||||||
break;
|
break;
|
||||||
case 0xE3: /*doesn't exist*/
|
case 0xE3: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
case 0xE4: /*doesn't exist*/
|
case 0xE4: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
case 0xE5:
|
case 0xE5:
|
||||||
push_rr(H, L);
|
push_rr(H, L);
|
||||||
|
@ -2682,10 +2695,16 @@ void CPU::process(const unsigned long cycles) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xEB: /*doesn't exist*/
|
case 0xEB: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
case 0xEC: /*doesn't exist*/
|
case 0xEC: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
case 0xED: /*doesn't exist*/
|
case 0xED: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
case 0xEE:
|
case 0xEE:
|
||||||
{
|
{
|
||||||
|
@ -2734,6 +2753,8 @@ void CPU::process(const unsigned long cycles) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xF4: /*doesn't exist*/
|
case 0xF4: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
case 0xF5: /*push_rr(A, F); Cycles(16); break;*/
|
case 0xF5: /*push_rr(A, F); Cycles(16); break;*/
|
||||||
calcHF(HF1, HF2);
|
calcHF(HF1, HF2);
|
||||||
|
@ -2806,8 +2827,12 @@ void CPU::process(const unsigned long cycles) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xFC: /*doesn't exist*/
|
case 0xFC: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
case 0xFD: /*doesn't exist*/
|
case 0xFD: /*doesn't exist*/
|
||||||
|
skip = true;
|
||||||
|
memory.di();
|
||||||
break;
|
break;
|
||||||
case 0xFE:
|
case 0xFE:
|
||||||
{
|
{
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue