diff --git a/examples/_lib/interrupt.cpp b/examples/_lib/interrupt.cpp index ab575d9..7dc5b16 100644 --- a/examples/_lib/interrupt.cpp +++ b/examples/_lib/interrupt.cpp @@ -1,5 +1,5 @@ #include "interrupt.h" -#include +#include void interrupt_init(void) { IRQ_Init(); diff --git a/examples/_lib/libugba/include/background.h b/examples/_lib/libugba/include/ugba/background.h similarity index 100% rename from examples/_lib/libugba/include/background.h rename to examples/_lib/libugba/include/ugba/background.h diff --git a/examples/_lib/libugba/include/bios.h b/examples/_lib/libugba/include/ugba/bios.h similarity index 100% rename from examples/_lib/libugba/include/bios.h rename to examples/_lib/libugba/include/ugba/bios.h diff --git a/examples/_lib/libugba/include/bios_wrappers.h b/examples/_lib/libugba/include/ugba/bios_wrappers.h similarity index 100% rename from examples/_lib/libugba/include/bios_wrappers.h rename to examples/_lib/libugba/include/ugba/bios_wrappers.h diff --git a/examples/_lib/libugba/include/console.h b/examples/_lib/libugba/include/ugba/console.h similarity index 100% rename from examples/_lib/libugba/include/console.h rename to examples/_lib/libugba/include/ugba/console.h diff --git a/examples/_lib/libugba/include/debug.h b/examples/_lib/libugba/include/ugba/debug.h similarity index 100% rename from examples/_lib/libugba/include/debug.h rename to examples/_lib/libugba/include/ugba/debug.h diff --git a/examples/_lib/libugba/include/definitions.h b/examples/_lib/libugba/include/ugba/definitions.h similarity index 97% rename from examples/_lib/libugba/include/definitions.h rename to examples/_lib/libugba/include/ugba/definitions.h index dfa1e0c..db2f052 100644 --- a/examples/_lib/libugba/include/definitions.h +++ b/examples/_lib/libugba/include/ugba/definitions.h @@ -34,6 +34,7 @@ # define EXPORT_API __declspec(dllexport) # else # define EXPORT_API __attribute__((visibility("default"))) +// TODO: Is this one below needed in MinGW? //# define EXPORT_API __attribute__((dllexport)) # endif #endif diff --git a/examples/_lib/libugba/include/display.h b/examples/_lib/libugba/include/ugba/display.h similarity index 100% rename from examples/_lib/libugba/include/display.h rename to examples/_lib/libugba/include/ugba/display.h diff --git a/examples/_lib/libugba/include/dma.h b/examples/_lib/libugba/include/ugba/dma.h similarity index 100% rename from examples/_lib/libugba/include/dma.h rename to examples/_lib/libugba/include/ugba/dma.h diff --git a/examples/_lib/libugba/include/fp_math.h b/examples/_lib/libugba/include/ugba/fp_math.h similarity index 100% rename from examples/_lib/libugba/include/fp_math.h rename to examples/_lib/libugba/include/ugba/fp_math.h diff --git a/examples/_lib/libugba/include/hardware.h b/examples/_lib/libugba/include/ugba/hardware.h similarity index 99% rename from examples/_lib/libugba/include/hardware.h rename to examples/_lib/libugba/include/ugba/hardware.h index 519bcb8..beffe5c 100644 --- a/examples/_lib/libugba/include/hardware.h +++ b/examples/_lib/libugba/include/ugba/hardware.h @@ -529,6 +529,14 @@ EXPORT_API uintptr_t *UGBA_RegDMA3DAD(void); // 3) When starting a timer by writing to: // // REG_TM0CNT_H, REG_TM1CNT_H, REG_TM2CNT_H, REG_TM3CNT_H +// +// 4) When IME or IE have been 0 for some time, IF isn't 0, and IME or IE are +// set to a value that would trigger an interrupt: +// +// REG_IE, REG_IME +// +// Note that writing to IF doesn't work on the SDL2 port. On the GBA, writing +// a 1 to a bit sets it to 0. On the SDL2 port, it sets the bit to 1. #ifdef __GBA__ # define UGBA_RegisterUpdatedOffset(offset) do { (void)(offset); } while (0) diff --git a/examples/_lib/libugba/include/input.h b/examples/_lib/libugba/include/ugba/input.h similarity index 100% rename from examples/_lib/libugba/include/input.h rename to examples/_lib/libugba/include/ugba/input.h diff --git a/examples/_lib/libugba/include/interrupts.h b/examples/_lib/libugba/include/ugba/interrupts.h similarity index 72% rename from examples/_lib/libugba/include/interrupts.h rename to examples/_lib/libugba/include/ugba/interrupts.h index 3c0d7a9..5761146 100644 --- a/examples/_lib/libugba/include/interrupts.h +++ b/examples/_lib/libugba/include/ugba/interrupts.h @@ -6,26 +6,25 @@ #define INTERRUPTS_H__ #include -#include #include "definitions.h" typedef enum { - IRQ_VBLANK = 0, - IRQ_HBLANK = 1, - IRQ_VCOUNT = 2, - IRQ_TIMER0 = 3, - IRQ_TIMER1 = 4, - IRQ_TIMER2 = 5, - IRQ_TIMER3 = 6, - IRQ_SERIAL = 7, - IRQ_DMA0 = 8, - IRQ_DMA1 = 9, - IRQ_DMA2 = 10, - IRQ_DMA3 = 11, - IRQ_KEYPAD = 12, - IRQ_GAMEPAK = 13, - IRQ_NUMBER + IRQ_VBLANK = 0, + IRQ_HBLANK = 1, + IRQ_VCOUNT = 2, + IRQ_TIMER0 = 3, + IRQ_TIMER1 = 4, + IRQ_TIMER2 = 5, + IRQ_TIMER3 = 6, + IRQ_SERIAL = 7, + IRQ_DMA0 = 8, + IRQ_DMA1 = 9, + IRQ_DMA2 = 10, + IRQ_DMA3 = 11, + IRQ_KEYPAD = 12, + IRQ_GAMEPAK = 13, + IRQ_NUMBER } irq_index; typedef void (*irq_vector)(void); @@ -47,4 +46,4 @@ EXPORT_API void IRQ_Disable(irq_index index); // Set the reference VCOUNT that triggers the VCOUNT interrupt. EXPORT_API void IRQ_SetReferenceVCOUNT(uint32_t y); -#endif // INTERRUPTS_H__ +#endif // INTERRUPTS_H__ diff --git a/examples/_lib/libugba/include/obj.h b/examples/_lib/libugba/include/ugba/obj.h similarity index 100% rename from examples/_lib/libugba/include/obj.h rename to examples/_lib/libugba/include/ugba/obj.h diff --git a/examples/_lib/libugba/include/sound.h b/examples/_lib/libugba/include/ugba/sound.h similarity index 100% rename from examples/_lib/libugba/include/sound.h rename to examples/_lib/libugba/include/ugba/sound.h diff --git a/examples/_lib/libugba/include/sram.h b/examples/_lib/libugba/include/ugba/sram.h similarity index 100% rename from examples/_lib/libugba/include/sram.h rename to examples/_lib/libugba/include/ugba/sram.h diff --git a/examples/_lib/libugba/include/timer.h b/examples/_lib/libugba/include/ugba/timer.h similarity index 100% rename from examples/_lib/libugba/include/timer.h rename to examples/_lib/libugba/include/ugba/timer.h diff --git a/examples/_lib/libugba/include/ugba.h b/examples/_lib/libugba/include/ugba/ugba.h similarity index 87% rename from examples/_lib/libugba/include/ugba.h rename to examples/_lib/libugba/include/ugba/ugba.h index 8c86941..aeba47a 100644 --- a/examples/_lib/libugba/include/ugba.h +++ b/examples/_lib/libugba/include/ugba/ugba.h @@ -13,10 +13,10 @@ extern "C" { #include "bios.h" #include "bios_wrappers.h" #include "console.h" +#include "dma.h" +#include "display.h" #include "debug.h" #include "definitions.h" -#include "display.h" -#include "dma.h" #include "fp_math.h" #include "hardware.h" #include "input.h" @@ -25,16 +25,17 @@ extern "C" { #include "sound.h" #include "sram.h" #include "timer.h" +#include "version.h" #include "vram.h" // Initialize library. This function needs to be called at the start of main(). -EXPORT_API void UGBA_Init(int* argc, char** argv[]); +EXPORT_API void UGBA_Init(int *argc, char **argv[]); #ifndef __GBA__ // Initialize library with no video output (for testing). This function needs to // be called at the start of main(). Not implemented in GBA as it isn't usedul // there. -EXPORT_API void UGBA_InitHeadless(int* argc, char** argv[]); +EXPORT_API void UGBA_InitHeadless(int *argc, char **argv[]); #endif // This function tries to detect specific flashcarts with special needs and @@ -46,4 +47,4 @@ EXPORT_API uint16_t UGBA_FlashcartOptimizedWaitstates(void); } #endif -#endif // UGBA_H__ +#endif // UGBA_H__ diff --git a/examples/_lib/libugba/include/version.h b/examples/_lib/libugba/include/ugba/version.h similarity index 92% rename from examples/_lib/libugba/include/version.h rename to examples/_lib/libugba/include/ugba/version.h index c90e198..525b030 100644 --- a/examples/_lib/libugba/include/version.h +++ b/examples/_lib/libugba/include/ugba/version.h @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT // -// Copyright (c) 2020 Antonio Niño Díaz +// Copyright (c) 2020-2022 Antonio Niño Díaz #ifndef VERSION_H__ #define VERSION_H__ @@ -10,7 +10,7 @@ // This library follows the Semantic Versioning rules: https://semver.org/ #define LIBUGBA_VERSION_MAJOR (0U) -#define LIBUGBA_VERSION_MINOR (2U) +#define LIBUGBA_VERSION_MINOR (3U) #define LIBUGBA_VERSION_PATCH (0U) #define LIBUGBA_VERSION ((LIBUGBA_VERSION_MAJOR << 16) | \ diff --git a/examples/_lib/libugba/include/vram.h b/examples/_lib/libugba/include/ugba/vram.h similarity index 100% rename from examples/_lib/libugba/include/vram.h rename to examples/_lib/libugba/include/ugba/vram.h diff --git a/examples/_lib/libugba/lib/libugba.a b/examples/_lib/libugba/lib/libugba.a index b0f3793..991c090 100644 Binary files a/examples/_lib/libugba/lib/libugba.a and b/examples/_lib/libugba/lib/libugba.a differ