added TIC80 shared library (tic80.dll)
This commit is contained in:
		
							
								
								
									
										91
									
								
								include/tic80/tic80.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								include/tic80/tic80.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
// MIT License
 | 
			
		||||
 | 
			
		||||
// Copyright (c) 2017 Vadim Grigoruk @nesbox
 | 
			
		||||
 | 
			
		||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
// of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
// in the Software without restriction, including without limitation the rights
 | 
			
		||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
// copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
// furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
// The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
// copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
// SOFTWARE.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "tic80_config.h"
 | 
			
		||||
#include "tic80_types.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define TIC80_WIDTH 240
 | 
			
		||||
#define TIC80_HEIGHT 136
 | 
			
		||||
 | 
			
		||||
typedef struct 
 | 
			
		||||
{
 | 
			
		||||
	struct
 | 
			
		||||
	{
 | 
			
		||||
		s16* buffer;
 | 
			
		||||
		s32 size;
 | 
			
		||||
	} sound;
 | 
			
		||||
 | 
			
		||||
	struct
 | 
			
		||||
	{
 | 
			
		||||
		void* buffer;
 | 
			
		||||
		s32 size;
 | 
			
		||||
	} screen;
 | 
			
		||||
} tic80;
 | 
			
		||||
 | 
			
		||||
typedef union
 | 
			
		||||
{
 | 
			
		||||
	struct
 | 
			
		||||
	{
 | 
			
		||||
		bool up:1;
 | 
			
		||||
		bool down:1;
 | 
			
		||||
		bool left:1;
 | 
			
		||||
		bool right:1;
 | 
			
		||||
		bool a:1;
 | 
			
		||||
		bool b:1;
 | 
			
		||||
		bool x:1;
 | 
			
		||||
		bool y:1;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u8 data;
 | 
			
		||||
} tic80_gamepad;
 | 
			
		||||
 | 
			
		||||
typedef union
 | 
			
		||||
{
 | 
			
		||||
	struct
 | 
			
		||||
	{
 | 
			
		||||
		tic80_gamepad first;
 | 
			
		||||
		tic80_gamepad second;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	struct
 | 
			
		||||
	{
 | 
			
		||||
		u16 mouse:15;
 | 
			
		||||
		u16 pressed:1;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	u16 data;
 | 
			
		||||
} tic80_input;
 | 
			
		||||
 | 
			
		||||
TIC80_API tic80* tic80_create(s32 samplerate);
 | 
			
		||||
TIC80_API void tic80_load(tic80* tic, void* cart, s32 size);
 | 
			
		||||
TIC80_API void tic80_tick(tic80* tic, tic80_input input);
 | 
			
		||||
TIC80_API void tic80_delete(tic80* tic);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										45
									
								
								include/tic80/tic80_config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								include/tic80/tic80_config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
// MIT License
 | 
			
		||||
 | 
			
		||||
// Copyright (c) 2017 Vadim Grigoruk @nesbox
 | 
			
		||||
 | 
			
		||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
// of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
// in the Software without restriction, including without limitation the rights
 | 
			
		||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
// copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
// furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
// The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
// copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
// SOFTWARE.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#if (defined(WIN32) || defined(_WIN32) || defined(__MINGW32__))
 | 
			
		||||
#	undef __WINDOWS__
 | 
			
		||||
#	define __WINDOWS__ 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (defined(linux) || defined(__linux) || defined(__linux__))
 | 
			
		||||
#	undef __LINUX__
 | 
			
		||||
#	define __LINUX__   1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef TIC80_API
 | 
			
		||||
#	if defined(TIC80_SHARED)
 | 
			
		||||
#		if defined(__WINDOWS__)
 | 
			
		||||
#			define TIC80_API __declspec(dllexport)
 | 
			
		||||
#		elif defined(__LINUX__)
 | 
			
		||||
#			define TIC80_API __attribute__ ((visibility("default")))
 | 
			
		||||
#		endif
 | 
			
		||||
#	else
 | 
			
		||||
#		define TIC80_API
 | 
			
		||||
#	endif
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										36
									
								
								include/tic80/tic80_types.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								include/tic80/tic80_types.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
// MIT License
 | 
			
		||||
 | 
			
		||||
// Copyright (c) 2017 Vadim Grigoruk @nesbox
 | 
			
		||||
 | 
			
		||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
// of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
// in the Software without restriction, including without limitation the rights
 | 
			
		||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
// copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
// furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
// The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
// copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
// SOFTWARE.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
 | 
			
		||||
typedef uint8_t u8;
 | 
			
		||||
typedef uint16_t u16;
 | 
			
		||||
typedef uint32_t u32;
 | 
			
		||||
typedef uint64_t u64;
 | 
			
		||||
 | 
			
		||||
typedef int8_t s8;
 | 
			
		||||
typedef int16_t s16;
 | 
			
		||||
typedef int32_t s32;
 | 
			
		||||
typedef int64_t s64;
 | 
			
		||||
		Reference in New Issue
	
	Block a user