mirror of
https://github.com/sanni/cartreader.git
synced 2024-11-13 08:25:05 +01:00
Add support for HW5
This commit is contained in:
parent
8188a64577
commit
ceca79079c
@ -4,7 +4,7 @@
|
|||||||
This project represents a community-driven effort to provide
|
This project represents a community-driven effort to provide
|
||||||
an easy to build and easy to modify cartridge dumper.
|
an easy to build and easy to modify cartridge dumper.
|
||||||
|
|
||||||
Date: 15.04.2022
|
Date: 09.06.2022
|
||||||
Version: 8.4
|
Version: 8.4
|
||||||
|
|
||||||
SD lib: https://github.com/greiman/SdFat
|
SD lib: https://github.com/greiman/SdFat
|
||||||
@ -111,7 +111,11 @@ U8G2_ST7567_OS12864_F_4W_HW_SPI display(U8G2_R2, /* cs=*/ 12, /* dc=*/ 11, /* re
|
|||||||
#include <RotaryEncoder.h>
|
#include <RotaryEncoder.h>
|
||||||
#define PIN_IN1 18
|
#define PIN_IN1 18
|
||||||
#define PIN_IN2 19
|
#define PIN_IN2 19
|
||||||
|
#ifdef rotate_counter_clockwise
|
||||||
|
RotaryEncoder encoder(PIN_IN2, PIN_IN1, RotaryEncoder::LatchMode::FOUR3);
|
||||||
|
#else
|
||||||
RotaryEncoder encoder(PIN_IN1, PIN_IN2, RotaryEncoder::LatchMode::FOUR3);
|
RotaryEncoder encoder(PIN_IN1, PIN_IN2, RotaryEncoder::LatchMode::FOUR3);
|
||||||
|
#endif
|
||||||
int rotaryPos = 0;
|
int rotaryPos = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -360,16 +364,16 @@ byte eeptemp;
|
|||||||
*****************************************/
|
*****************************************/
|
||||||
#if defined(enable_LCD)
|
#if defined(enable_LCD)
|
||||||
// Main menu
|
// Main menu
|
||||||
static const char modeItem1[] PROGMEM = "Super Nintendo";
|
static const char modeItem1[] PROGMEM = "Game Boy";
|
||||||
static const char modeItem2[] PROGMEM = "Mega Drive";
|
static const char modeItem2[] PROGMEM = "NES/Famicom";
|
||||||
static const char modeItem3[] PROGMEM = "Nintendo 64";
|
static const char modeItem3[] PROGMEM = "Super Nintendo";
|
||||||
static const char modeItem4[] PROGMEM = "Game Boy";
|
static const char modeItem4[] PROGMEM = "Nintendo 64";
|
||||||
static const char modeItem5[] PROGMEM = "NES/Famicom";
|
static const char modeItem5[] PROGMEM = "Mega Drive";
|
||||||
static const char modeItem6[] PROGMEM = "Flashrom Programmer";
|
static const char modeItem6[] PROGMEM = "SMS/GG/MIII/SG-1000";
|
||||||
static const char modeItem7[] PROGMEM = "PC Engine/TG16";
|
static const char modeItem7[] PROGMEM = "PC Engine/TG16";
|
||||||
static const char modeItem8[] PROGMEM = "SMS/GG/MIII/SG-1000";
|
static const char modeItem8[] PROGMEM = "WonderSwan";
|
||||||
static const char modeItem9[] PROGMEM = "WonderSwan";
|
static const char modeItem9[] PROGMEM = "NeoGeo Pocket";
|
||||||
static const char modeItem10[] PROGMEM = "NeoGeo Pocket";
|
static const char modeItem10[] PROGMEM = "Flashrom Programmer";
|
||||||
static const char modeItem11[] PROGMEM = "About";
|
static const char modeItem11[] PROGMEM = "About";
|
||||||
static const char* const modeOptions[] PROGMEM = {modeItem1, modeItem2, modeItem3, modeItem4, modeItem5, modeItem6, modeItem7, modeItem8, modeItem9, modeItem10, modeItem11};
|
static const char* const modeOptions[] PROGMEM = {modeItem1, modeItem2, modeItem3, modeItem4, modeItem5, modeItem6, modeItem7, modeItem8, modeItem9, modeItem10, modeItem11};
|
||||||
|
|
||||||
@ -407,32 +411,14 @@ void mainMenu() {
|
|||||||
// wait for user choice to come back from the question box menu
|
// wait for user choice to come back from the question box menu
|
||||||
switch (modeMenu)
|
switch (modeMenu)
|
||||||
{
|
{
|
||||||
#ifdef enable_SNES
|
|
||||||
case 0:
|
|
||||||
snsMenu();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef enable_MD
|
|
||||||
case 1:
|
|
||||||
mdMenu();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef enable_N64
|
|
||||||
case 2:
|
|
||||||
n64Menu();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef enable_GBX
|
#ifdef enable_GBX
|
||||||
case 3:
|
case 0:
|
||||||
gbxMenu();
|
gbxMenu();
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef enable_NES
|
#ifdef enable_NES
|
||||||
case 4:
|
case 1:
|
||||||
display_Clear();
|
display_Clear();
|
||||||
display_Update();
|
display_Update();
|
||||||
setup_NES();
|
setup_NES();
|
||||||
@ -442,9 +428,27 @@ void mainMenu() {
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef enable_FLASH
|
#ifdef enable_SNES
|
||||||
|
case 2:
|
||||||
|
snsMenu();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef enable_N64
|
||||||
|
case 3:
|
||||||
|
n64Menu();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef enable_MD
|
||||||
|
case 4:
|
||||||
|
mdMenu();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef enable_SMS
|
||||||
case 5:
|
case 5:
|
||||||
flashMenu();
|
smsMenu();
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -454,14 +458,8 @@ void mainMenu() {
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef enable_SMS
|
|
||||||
case 7:
|
|
||||||
smsMenu();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef enable_WS
|
#ifdef enable_WS
|
||||||
case 8:
|
case 7:
|
||||||
display_Clear();
|
display_Clear();
|
||||||
display_Update();
|
display_Update();
|
||||||
setup_WS();
|
setup_WS();
|
||||||
@ -470,7 +468,7 @@ void mainMenu() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef enable_NGP
|
#ifdef enable_NGP
|
||||||
case 9:
|
case 8:
|
||||||
display_Clear();
|
display_Clear();
|
||||||
display_Update();
|
display_Update();
|
||||||
setup_NGP();
|
setup_NGP();
|
||||||
@ -478,6 +476,12 @@ void mainMenu() {
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef enable_FLASH
|
||||||
|
case 9:
|
||||||
|
flashMenu();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
aboutScreen();
|
aboutScreen();
|
||||||
break;
|
break;
|
||||||
@ -714,12 +718,22 @@ void draw_progressbar(uint32_t processed, uint32_t total) {
|
|||||||
Setup
|
Setup
|
||||||
*****************************************/
|
*****************************************/
|
||||||
void setup() {
|
void setup() {
|
||||||
// Set Button Pins(PD7, PG2) to Input
|
// Set Button Pin PG2 to Input
|
||||||
DDRD &= ~(1 << 7);
|
|
||||||
DDRG &= ~(1 << 2);
|
DDRG &= ~(1 << 2);
|
||||||
|
#ifdef HW5
|
||||||
|
// HW5 has status LED connected to PD7
|
||||||
|
// Set LED Pin PD7 to Output
|
||||||
|
DDRD |= (1 << 7);
|
||||||
|
PORTD |= (1 << 7);
|
||||||
|
#else
|
||||||
|
// HW1/2/3 have button connected to PD7
|
||||||
|
// Set Button Pin PD7 to Input
|
||||||
|
DDRD &= ~(1 << 7);
|
||||||
|
#endif
|
||||||
// Activate Internal Pullup Resistors
|
// Activate Internal Pullup Resistors
|
||||||
//PORTD |= (1 << 7);
|
|
||||||
//PORTG |= (1 << 2);
|
//PORTG |= (1 << 2);
|
||||||
|
//PORTD |= (1 << 7);
|
||||||
|
|
||||||
|
|
||||||
// Read current folder number out of eeprom
|
// Read current folder number out of eeprom
|
||||||
EEPROM_readAnything(0, foldern);
|
EEPROM_readAnything(0, foldern);
|
||||||
@ -733,13 +747,13 @@ void setup() {
|
|||||||
#ifdef enable_neopixel
|
#ifdef enable_neopixel
|
||||||
pixels.begin();
|
pixels.begin();
|
||||||
pixels.clear();
|
pixels.clear();
|
||||||
pixels.setPixelColor(0, pixels.Color(100, 0, 0));
|
pixels.setPixelColor(0, pixels.Color(background_color));
|
||||||
pixels.setPixelColor(1, pixels.Color(0, 0, 100));
|
pixels.setPixelColor(1, pixels.Color(0, 0, 100));
|
||||||
pixels.setPixelColor(2, pixels.Color(0, 0, 100));
|
pixels.setPixelColor(2, pixels.Color(0, 0, 100));
|
||||||
pixels.show();
|
pixels.show();
|
||||||
|
|
||||||
// Set TX0 LED Pin(PE1) to Output for status indication during flashing
|
// Set TX0 LED Pin(PE1) to Output for status indication during flashing for HW4
|
||||||
#if !defined(enable_serial)
|
#if !(defined(enable_serial) || defined(HW5))
|
||||||
DDRE |= (1 << 1);
|
DDRE |= (1 << 1);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@ -809,7 +823,7 @@ void setColor_RGB(byte r, byte g, byte b) {
|
|||||||
if (g >= 100) g = 100;
|
if (g >= 100) g = 100;
|
||||||
if (b >= 100) b = 100;
|
if (b >= 100) b = 100;
|
||||||
pixels.clear();
|
pixels.clear();
|
||||||
pixels.setPixelColor(0, pixels.Color(100, 0, 0));
|
pixels.setPixelColor(0, pixels.Color(background_color));
|
||||||
pixels.setPixelColor(1, pixels.Color(g, r, b));
|
pixels.setPixelColor(1, pixels.Color(g, r, b));
|
||||||
pixels.setPixelColor(2, pixels.Color(g, r, b));
|
pixels.setPixelColor(2, pixels.Color(g, r, b));
|
||||||
pixels.show();
|
pixels.show();
|
||||||
@ -1225,7 +1239,9 @@ void rgbLed(byte Color) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void blinkLED() {
|
void blinkLED() {
|
||||||
#if defined(enable_OLED)
|
#if defined(HW5)
|
||||||
|
PORTD ^= (1 << 7);
|
||||||
|
#elif defined(enable_OLED)
|
||||||
PORTB ^= (1 << 4);
|
PORTB ^= (1 << 4);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
PORTE ^= (1 << 1);
|
PORTE ^= (1 << 1);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
//#define HW1
|
//#define HW1
|
||||||
//#define SERIAL_MONITOR
|
//#define SERIAL_MONITOR
|
||||||
|
|
||||||
#if !(defined(HW1) || defined(HW2) || defined(HW3) || defined(HW4) || defined(SERIAL_MONITOR))
|
#if !(defined(HW1) || defined(HW2) || defined(HW3) || defined(HW4) || defined(HW5) || defined(SERIAL_MONITOR))
|
||||||
# error !!! PLEASE CHOOSE HARDWARE VERSION IN OPTIONS.H !!!
|
# error !!! PLEASE CHOOSE HARDWARE VERSION IN OPTIONS.H !!!
|
||||||
#endif
|
#endif
|
||||||
//******************************************
|
//******************************************
|
||||||
@ -22,7 +22,9 @@
|
|||||||
#if (defined(HW4) || defined(HW5))
|
#if (defined(HW4) || defined(HW5))
|
||||||
#define enable_LCD
|
#define enable_LCD
|
||||||
#define enable_neopixel
|
#define enable_neopixel
|
||||||
|
#define background_color 100,0,0 //Green, Red, Blue
|
||||||
#define enable_rotary
|
#define enable_rotary
|
||||||
|
//#define rotate_counter_clockwise
|
||||||
#define clockgen_installed
|
#define clockgen_installed
|
||||||
#define fastcrc
|
#define fastcrc
|
||||||
#define ws_adapter_v2
|
#define ws_adapter_v2
|
||||||
@ -32,6 +34,7 @@
|
|||||||
#define enable_OLED
|
#define enable_OLED
|
||||||
#define enable_Button2
|
#define enable_Button2
|
||||||
//#define clockgen_installed
|
//#define clockgen_installed
|
||||||
|
//#define fastcrc
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HW1)
|
#if defined(HW1)
|
||||||
|
Loading…
Reference in New Issue
Block a user