diff --git a/MCUME_teensy/teensygnuboy/emu.cpp b/MCUME_teensy/teensygnuboy/emu.cpp index 008fc0c..8b0e80e 100644 --- a/MCUME_teensy/teensygnuboy/emu.cpp +++ b/MCUME_teensy/teensygnuboy/emu.cpp @@ -35,6 +35,8 @@ extern "C" void write_rom(int address, uint8 val) { #else +#ifdef HAS_PSRAM + #include "psram_t.h" PSRAM_T psram = PSRAM_T(PSRAM_CS, PSRAM_MOSI, PSRAM_SCLK, PSRAM_MISO); @@ -46,6 +48,20 @@ extern "C" uint8 read_rom(int address) { extern "C" void write_rom(int address, uint8 val) { psram.pswrite(address,val); } + +#else + +DMAMEM static unsigned char MemPool[490*1024]; + +extern "C" uint8 read_rom(int address) { + return (MemPool[address+rom_offset]); +} + +extern "C" void write_rom(int address, uint8 val) { + MemPool[address]=val; +} + +#endif #endif void emu_KeyboardOnDown(int keymodifer, int key) { @@ -60,7 +76,7 @@ void emu_KeyboardOnUp(int keymodifer, int key) { void gbe_Init(void) { emu_printf("Allocating MEM"); -#ifndef HAS_T41 +#ifdef HAS_PSRAM psram.begin(); #endif mem_init(); @@ -144,7 +160,9 @@ void gbe_Step(void) hw.pad|=PAD_B; } - if (k & MASK_KEY_USER2) hw.pad|=PAD_START; //PAD_SELECT; + if (k & MASK_KEY_USER2) hw.pad|=PAD_START; + + if (k & MASK_KEY_USER3) hw.pad|=PAD_SELECT; // cpu_emulate(2280); diff --git a/MCUME_teensy/teensygnuboy/teensygnuboy.ino b/MCUME_teensy/teensygnuboy/teensygnuboy.ino index 37232ed..56bc857 100644 --- a/MCUME_teensy/teensygnuboy/teensygnuboy.ino +++ b/MCUME_teensy/teensygnuboy/teensygnuboy.ino @@ -251,7 +251,7 @@ void loop(void) // In VGA mode, we show the keyboard on TFT toggleVirtualkeyboard(true); // keepOn Serial.println("Starting"); - myTimer.begin(vblCount, 40000); //to run every 20ms + myTimer.begin(vblCount, 16666); // 60Hz = 1/0.016666 #endif } delay(20); diff --git a/MCUME_teensy/teensygnuboy/tft_t_dma.h b/MCUME_teensy/teensygnuboy/tft_t_dma.h index 6d01544..468bd70 100644 --- a/MCUME_teensy/teensygnuboy/tft_t_dma.h +++ b/MCUME_teensy/teensygnuboy/tft_t_dma.h @@ -23,10 +23,10 @@ #define PAL_COLOR_MASK 0xff #ifdef LOHRES -#define TFT_WIDTH 240 +#define TFT_WIDTH 160 #define TFT_REALWIDTH 240 #else -#define TFT_WIDTH 320 +#define TFT_WIDTH 160 #define TFT_REALWIDTH 320 #endif #define TFT_HEIGHT 144 diff --git a/MCUME_teensy/teensynofrendo/nes_emu.c b/MCUME_teensy/teensynofrendo/nes_emu.c index 9f7fbb2..095aa5b 100644 --- a/MCUME_teensy/teensynofrendo/nes_emu.c +++ b/MCUME_teensy/teensynofrendo/nes_emu.c @@ -91,7 +91,7 @@ static int osd_init_sound(void) void osd_getsoundinfo(sndinfo_t *info) { - info->sample_rate = (22050*20000)/16666; // fix for 60Hz + info->sample_rate = 44100 info->bps = 16; } diff --git a/README.md b/README.md index 1bee145..bea1d68 100644 --- a/README.md +++ b/README.md @@ -199,10 +199,10 @@ Game console systems supported and status on various MCU platforms
| Odyssey/Videopac | X | X | X | X | X | X | X | | Colecovision | X | X | X | X | X | X | X | | Atari 5200 | X | X | X | X | X | X | X | -| Nintendo NES | X | big roms! | X | X | X | X | - | +| Nintendo NES | X | 384KB roms! | X | X | X | X | - | | Vectrex | - | full speed! | X | X | - | slow | - | | PC Engine | - | - | X | X | - | - | - | -| Gameboy/GBColor | - | - | X | X | - | - | - | +| Gameboy/GBColor | - | 490KB roms| X | X | - | - | - | | Sega Master System/Game Gear | - | - | X | X | - | - | - | | Sega Genesis/Megadrive | - | - | X | X | - | - | - |