Skip to content

Commit

Permalink
Merge branch 'kamotswind-patch-1'
Browse files Browse the repository at this point in the history
  • Loading branch information
OtherCrashOverride committed Nov 1, 2018
2 parents 373d558 + 5a4216f commit fca32e5
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 10 deletions.
Binary file added GO-KB-C64-map.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# frodo-go
Commodore 64 emulation for ODROID-GO

To use, you will need to do the following steps:

1) Purchase and receive the ODROID-GO QWERTY Keyboard which is required for this emulator.

2) Create the below directory on your SD card.
```
/roms/c64/
```
3) Place the following 4 BIOS files in the /roms/c64/ directory, named exactly as shown.
```
1541.ROM
Basic.ROM
Char.ROM
Kernal.ROM
```
4) Place your .D64 files in the /roms/c64/ directory. Only D64 format is supported at this time.

# Keyboard Map
Below is the current keyboard mapping graphic for this emulator.
![QWERTY Map](GO-KB-C64-map.png?raw=true)

Please note the symbols above the number keys have changed to match the original C64.

Red means the keys were remapped from what is shown on the actual keyboard.

Blue means that remapping is only active when Fn-lock is on.

H = "HOME / CLR"

RE = "RESTORE"

RS = "Right Shift"
35 changes: 25 additions & 10 deletions components/frodo/Display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -525,11 +525,17 @@ static void translate_key(int key, bool key_up, uint8 *key_matrix, uint8 *rev_ma
case ODROID_KEY_8:
c64_key = func_flag ? MATRIX(0,3) | 0x80 : MATRIX(3,3);
break;
case ODROID_KEY_9: c64_key = MATRIX(4,0); break;
case ODROID_KEY_9:
c64_key = func_flag ? MATRIX(6,0) : MATRIX(4,0);
break;

case ODROID_KEY_SPACE: c64_key = MATRIX(7,4); break;
case ODROID_KEY_GRAVE_ACCENT: c64_key = MATRIX(7,1); break;
case ODROID_KEY_BACKSLASH: c64_key = MATRIX(6,5); break; // =
case ODROID_KEY_GRAVE_ACCENT:
c64_key = func_flag ? MATRIX(6,3) : MATRIX(7,1);
break;
case ODROID_KEY_BACKSLASH:
c64_key = func_flag ? MATRIX(6,6) : MATRIX(6,5);
break;
case ODROID_KEY_COMMA: c64_key = MATRIX(5,7); break;
case ODROID_KEY_PERIOD: c64_key = MATRIX(5,4); break;
case ODROID_KEY_MINUS: c64_key = MATRIX(5,0); break;
Expand All @@ -551,7 +557,9 @@ static void translate_key(int key, bool key_up, uint8 *key_matrix, uint8 *rev_ma

case ODROID_KEY_CONTROL: /*case ODROID_KEY_Tab:*/ c64_key = MATRIX(7,2); break;
//case ODROID_KEY_RightControl: c64_key = MATRIX(7,5); break;
case ODROID_KEY_SHIFT: c64_key = MATRIX(1,7); break;
case ODROID_KEY_SHIFT:
c64_key = func_flag ? MATRIX(6,4) : MATRIX(1,7);
break;
//case ODROID_KEY_RightShift: c64_key = MATRIX(6,4); break;
case ODROID_KEY_ALTERNATE: /*case ODROID_KEY_LMETA:*/ c64_key = MATRIX(7,5); break;
//case ODROID_KEY_RightAlt: /*case ODROID_KEY_RMETA:*/ c64_key = MATRIX(7,5); break;
Expand Down Expand Up @@ -812,15 +820,22 @@ void C64Display::PollKeyboard(uint8 *key_matrix, uint8 *rev_matrix, uint8 *joyst
// quit_requested = true;
// break;

// case OdroidKey_F11: // F11: NMI (Restore)
// TheC64->NMI();
// case OdroidKey_F11: // F11: Reset
// TheC64->Reset();
// break;

case ODROID_KEY_0: // F12: Reset
if (func_flag)
case ODROID_KEY_0:
if (func_flag)// RESTORE key when Fn lock. Reset emulator if Grave Accent also pressed.
{
TheC64->Reset();
func_flag = false;
odroid_keyboardstate_t kbstate = odroid_keyboard_state_get();
if (odroid_keyboard_state_key_get(&kbstate, ODROID_KEY_GRAVE_ACCENT) == ODROID_KEY_PRESSED) {
TheC64->Reset();
func_flag = false;
}
else
{
TheC64->NMI();
}
break;
}
// fall through
Expand Down

0 comments on commit fca32e5

Please sign in to comment.