Commit Graph

16 Commits

Author SHA1 Message Date
paul eeepc 66635b15e7 Making progress on main program flow with detection in preparation for dumping/writing operations.
Prepended DICT_ to dictionary names to prevent using those defines for something else accidentally
"NES/SNES" etc could be used in a lot of places, don't want to use wrong enum/define in wrong place.

created enums.h to list out all enums/defines for cartridge and memory elements in one location.

separate file.c/h file for getting data in/out of a files, and opening/closing them.

adding test roms to roms folder so they can be used for various testing.
2016-12-07 18:08:31 -06:00
paul eeepc 8654a8f4bf Reading nes file inputs and extracting data from header.
Creating rom image struct/object to store rom header data.
2016-12-05 00:42:29 -06:00
paul eeepc 497e53378b Basic cartridge detection working. NES detected with CIRAM /CE and PPU /A13N jumper. Famicom detected with audio in/out connection. SNES detected by enabling control signals and reading reset vector looking for non 0xff data. Still need to add check that would pass with blank flash cart though reading flash ID's perhaps.
Removing bad logic where TRUE == 0x00 as that's 'false' in C so that was causing more confusions than solutions.
2016-12-04 03:16:40 -06:00
Paul Molloy 132360f305 Updating main command line input args, and libusb logging/debug messages.
now able to accept LIBUSB_LOG_LEVEL from commandline to turn on/off error
messges at runtime.  Also setting level > 0 will print messages during
device discovery and connection.  Still need to permit kazzo firmware
version to be provided on commandline to support K flag.

fixing dictionary call typo with semicolon and setting buffer length
to always be provided with function call instead of dictionary call
deciding what it should be based on the opcode.

Adding some speed notes and other speed related discussions to buffer
dictionary.
2016-12-02 22:59:54 -06:00
Paul Molloy 3326c2fb34 payload buffers working with some early testing.
Had a good lesson on what static means... :/
everything working now as previously designed
speed testing on windows10 PC yeilded ~21KBps when transferring 128-512KB
payloads and 128Byte transfer size.  Going to bump to 256 and see how that
does after 128KB speed tests on linux machine.

created host test.c/.h file for general testing of new features.
that way I can start working on erase/write.h files and just use test.c as
scratch code space for tinkering and still call with -t flag on command
line.

modified dictionary calls to include pointers to data and lengths.
2016-11-29 18:27:54 -06:00
paul eeepc 94ea3fd474 modified: host/source/inlprog.c
new file:   host/source/erase.c
new file:   host/source/erase.h
	creating erase files called from main with e_flag

modified:   firmware/source/usb.c
	introducing switch statement with range of values of opcode type detection.

modified:   host/source/usb_operations.h
	turning off debug

modified:   shared/shared_errors.h
	renumbering some error codes
	thinking I'll have codes which can come from avr set to 128+
2016-11-26 14:17:34 -06:00
paul eeepc dae63f73b0 Tons of edits...
rearranged some of the .h files, created dictionary file to list all dictionaries of opcodes.
        moved error codes to shared file so host can interpret firmware error codes.
        created firmware usb.c/h to handle usb operations (didn't move as git seems to think..)
	cleaned up fw main function and file.
	host usb_operations, created USBrequest struct type to more easily handle all transfer info.

Currently able to send pinport commands and read back return values from retro prog.
Just need to start writting functions to send opcodes and start actually preforming some cartridge operations.
2016-11-25 19:50:43 -06:00
paul eeepc 70e700c7e8 Prepending 'shared' to files in shared folder to make more clear that these files should only be edited from the shared folder as they're copied into source folder at compile time. Any edits from source folder will get stopped, and committing shared files outside of shared folder is not desired. 2016-11-22 00:52:06 -06:00
Paul Molloy b8be4b768a new file: shared/usb_commands.h
-shared .h files used in both firmware and host app
modified:   firmware/Makefile
modified:   host/Makefile
	-added shared dependency to copy shared files to source prior to
	building
modified:   host/source/usb_operations.h
modified:   firmware/source/main.c
	-removing usb commands (now in shared)
modified:   host/include/dbg.h
	-adding SUCCESS defintion
modified:   host/source/inlprog.c
	-calling write file if write arg sent
new file:   host/source/write_operations.c
new file:   host/source/write_operations.h
	-creation of write operations files
	-opens file and reads header
	-some skeleton comments
	-lots of work left to do here
new file:   roms/nrom_v_test.nes
	-adding NROM test rom file
2016-11-20 23:57:09 -06:00
paul eeepc cfffe554be modified: source/inlprog.c
-introducing getopt to obtain commandline args
modified:   source/usb_operations.c
	-moving USB defn comments in from main
2016-11-20 15:43:11 -06:00
paul eeepc 4cbeff1ecf modified: source/inlprog.c
- removing compile errors
	- fixing request/command for off (was always sending on copy paste error)
modified:   source/usb_operations.c
	- Adding checks beyond VID/PID pair
	- Now check Manufacturer, Product, and build version
	- Give Warnings/Error if device is not supported
	- Don't blindly accept and try to write to non-supported devices.
	- Cleared up confusion on ENDPOINT direction.
2016-11-19 23:58:47 -06:00
Paul Molloy 49c9876770 modified: source/inlprog.c
modified:   source/usb_operations.c
modified:   source/usb_operations.h
	-moving usb transfer operation to usb_operations
2016-11-19 21:32:54 -06:00
Paul Molloy 782ed343f7 modified: source/inlprog.c
-moved usb device operations into usb_operations module
new file:   source/usb_operations.c
new file:   source/usb_operations.h
	-creation of usb_operations module
	-currently handles libusb open/close and retrieving INL retro-prog
	usb handle.
2016-11-19 19:10:13 -06:00
paul eeepc 37c79429ea modified: source/inlprog.c
-moving returnvalue "rv" declaration/init earlier to ensure initization.
	-adding notes to user if LIBUSB_ERROR_ACCESS as it's expected on linux.

modified:   udev-rule-help/Readme.txt
	-including expected libusb error if user doesn't have access.
2016-11-19 17:38:12 -06:00
Paul Molloy b1e60a35df host\Makefile: fixing make debug, Zed's logic seems backwards to me.
host\include\dbg.h: reversing DEBUG logic.
host\source\inlprog.c: working through making code more robust with proper
error checking via "Zed's AWESOME debug macros" ;)
2016-11-19 16:51:50 -06:00
paul eeepc ad1037b694 First commit for Makefile and main inlretro program.
Makefile copied from the Makefile I came up with during Zed Shaw's LCTHW
inlretro.c basic usb functionality using libusb 1.0
	-searches through usb devices and opens matching VID/PID
	-sends vendor xfr command for LED ON/OFF
	-closes out usb device prior to exit
	-lots of messy comments as notes while learning libusb
2016-11-19 01:20:20 -06:00