75aaba1ad8Add inlretro built binary to gitignore
Sylvain Gadrat
2018-11-30 12:53:41 +0100
ff8495455cUpdating fwupdate script it's officially updating the STM32 firmware all on it's own!!!
Paul XPS
2018-11-30 00:37:52 -0600
e3efe04836Firmware updates are complete for switchless firmware updates via USB!
Paul XPS
2018-11-29 22:31:26 -0600
298c9112c5Implement -h help message for all currently implemented CLI options, fix warning about const string.
beyondcoast
2018-11-29 20:43:41 -0600
0213df5580Rearchitect Makefile to support dependency tracking / fast incremental builds. Lua now built and linked as static library via its own Makefile. .gitignore modified to ignore *.d Makefile fragments with dependency info.
beyondcoast
2018-11-29 20:36:06 -0600
a8a4e7e1e2Have the usb code physically separate from the main/application code with large number of updates to the linker script (nokeep.ld)
Paul XPS
2018-11-28 16:01:58 -0600
e3d0ec434eHave the USB code effectively separated from the main application code!
Paul XPS
2018-11-27 23:26:26 -0600
d0c8ab82feMoved usbMsgPtr to usb_buff ram successfully. Deleted shared_usb.h because it was a copy of shared_dict_usb.h
Paul XPS
2018-11-27 02:00:47 -0600
a8d9fe55bbMoving usb code static variables from system ram to USB buffer ram. In effort to remove USB firmware driver's dependance on .data/.bss Started by fixing bug that wasn't allowing USB_BTABLE to be relocatable Was neglecting byte addressing vs usb_buff[] array indexing of 16bit half words.
Paul XPS
2018-11-26 01:59:04 -0600
8d6707ef9ffixing EXP definitions for STM_NES so it'll actually build for previous commit..
Paul XPS
2018-11-25 22:30:04 -0600
2013efe253Most things working on STM_NES now with more complete pinport_al.h definitions. Still work left on the expansion port though.. Created *_CONN definitions so code doesn't get included for connectors that aren't present. Added a NES CPU write that doesn't toggle M2 but not sure if this will really be needed for MMC2 or not..
Paul XPS
2018-11-25 22:17:36 -0600
0e1f634e62Merge branch 'master' into 'master'
Paul Molloy
2018-11-26 04:04:39 +0000
fbcd5de5ffReference shared/*.h using compiler flag, remove need to copy files to build host application. Remove related content in .git_ignore.
beyondcoast
2018-11-25 13:02:53 -0600
1e0004b12cAdding windows binary from @beyondcast's merge request.
Paul XPS
2018-11-25 10:50:49 -0600
b32945027eMerge branch 'master' into 'master'
Paul Molloy
2018-11-25 06:36:37 +0000
911e85cf7dUpdate host/scripts/nes/mmc1.lua
Max
2018-11-24 18:13:25 +0000
6333a1e4aeAdd debugging messages to mmc1 script mirroring test
beyondcoast
2018-11-23 22:37:44 -0600
073edb4097Add debugging messages to mmc1 script mirroring test
beyondcoast
2018-11-23 22:36:07 -0600
b75773c8cbEliminate some warnings in usb_operations.c, refactor logic related to option parsing, usb init, lua init in inprog.c, initial prototype of inlretro2.lua that handles options from cmd line, streamlined execution
beyondcoast
2018-11-23 21:06:17 -0600
7651f91a46Add LICENSE GPLv3
Paul Molloy
2018-11-21 04:44:49 +0000
9a963e06b1commiting the usb firmware version that goes with the last commit.
Paul XPS
2018-11-20 09:48:39 -0600
7584bbeb70Big update from past weeks' work. Most of the work involves converting NES scripts to use new dump/flash methodology that MMC3 started. Includes BNROM, UNROM, MMC1, and new scripts for FME7 & MMC4 (SOP flash). Adding more general support to SNES with v2proto_hirom that script is actually becoming more of a master script supporting both LoROM and HiROM including flash, dump, and save backups. SNES Rd/Wr now designate the state of /ROMSEL so have to manually determine if access should be in /ROMSEL space of the SNES memory map or not. (ie all SNES cart memories are /ROMSEL space except HiROM SRAM).
Paul XPS
2018-11-19 18:00:03 -0600
86e8d3d215Big old first major commit since publicly releasing..
Paul XPS
2018-11-09 21:52:33 -0600
64397e939aSome minor fixes to firmware version of mirror detection. But didn't seem to fix the issue. Moved this function to host side bc it works there and is a better fit for the host. Minor updates to main inlretro.lua script
Paul Win10 shuttle PC
2018-11-09 12:02:55 -0600
ce01d9e85cUpdating readme with better details on how to get started.
Paul XPS
2018-10-18 00:51:25 -0500
f3c7ec853cAdding user notes to main inlretro.lua script. Modifying mirror detection to run from host end entirely, not sure what's causing issues with firmware function ciram_a10_mirroring
Paul XPS
2018-10-18 00:23:04 -0500
88df239ffaAdding dfu file for release & tag that was just made a few min ago..
Paul Win10 shuttle PC
2018-09-07 09:31:23 -0500
25c159c27fFinal commit for firmware version 2.01 first public release Host does not require v2.01 over v2.00
Paul Win10 shuttle PC
2018-09-07 09:13:39 -0500
88a2d30858Massive commit with bunch of random junk..
Paul Win10 shuttle PC
2018-09-06 23:01:59 -0500
9c57f1bdb3Massively overdue commit of several months worth of random work. Mostly adding support for mappers as I needed it for my own hardware builds: -MMC1 -mapper 30 -easy NSF (still need to update for mapper verilog fix) -action53 (still need to update for mapper verilog fix) -dual port board flashing -colordreams, not sure if I actually got this working -color ninja, just a special CPLD version of colordreams for ninja boards
Paul Black ASUS win7
2018-07-08 20:23:44 -0500
3488a64fe2moving inl6proto to separate makefile, adding fast unclean build option for final inl6 version. Must call "make stm6clean" for a clean build, default is fast & dirty. Other hardware always builds clean.
Paul Black ASUS win7
2018-07-08 19:54:57 -0500
3e2bcea7e8Added quick support to flash HH85 on BNROM. Dumped/flashed MMX on SNES v3 boards. created discrete_exp0_mapper_wr to try and write to mapper but not flash for discrete boards but doesn't seem to work for some reason so commented out for now.
Paul Black ASUS win7
2018-04-12 11:21:04 -0500
f7201f44b7Have UxROM dumping, erasing, and flashing working now. Also the current build assumes that the mcu is able to over drive the PRG-ROM output to select bank zero for initial bank table writting. Seems to work, but may need to come up with write that applies to mapper only and doesn't enable the PRG-ROM by keeping EXP0 low.
Paul Black ASUS win7
2018-03-18 14:39:45 -0500
223007187bHave BNROM, and action53 working in PLCC and TSSOP. Also added swim reading of stack bottom for CICOp signature. Starting to add scripts for different mappers. Need to clean things up quite a bit as everything was a bit of a hack just so I could start building lizards and A53. Need to add back NROM, and add UNROM as well. Need to have program find bank table for itself both in the program and in a cartridge. Having problems with SWIM on new discrete NES boards for some reason. Some boards are flakey and I march right in and start writting to config bytes which will brick the device if communications are failing (and there's no reset pin...) as is with the stm8s001
Paul Black ASUS win7
2018-03-17 21:56:24 -0500
c208924e45Have BNROM 512KB PRG-ROM working for dumping and flashing. Realizing much of my problems with discrete boards on original kazzos was that I completely ignored the fact that most discretes are subject to bus conflicts. This makes writes to the mapper bank selecting uber flakey... Created routine in bnrom.lua script to start flash operation by writing the bank table to where Lizard puts it. Need to write routine to find the bank table in a provided rom for flashing. And dumping needs to find the bank table prior to making mapper writes and then use it for bank switching!
Paul Black ASUS win7
2018-02-15 14:34:52 -0600
9d35ad0c0fGetting closer to supporting various mappers. Modified flash/dump scripts to be more generic accepting mapper/memory args and file names. Then they only handle the buffer and file operations. Created scripts/nes folder for holding all mapper scripts. Currently only nrom.lua is working and verified with inlretro6. Found issue where the very first byte read from PRG-ROM was garbage. Narrowed it down to lower address byte not settling in time, added NOP and resolved issue. Still need to test on original kazzo and stm adapter, planning to do that after this commit. Next task is to get BNROM working so I can start getting to work on lizard builds while taking advantage of speed boost!
Paul Black ASUS win7
2018-02-15 11:20:24 -0600
fafe706481Another late commit from bunch of updates I made over a month ago.. Most progress was on jtag lua statemachine code. From what I recall I tested and verified most state change possibilities with logic analyzer. So they should be fairly good. Possible I didn't test all later ones, or things are partly unfinished, but my best guess is they're good. Appears was able to erase MachXO CPLD. Added time delay for run test. Did some basic testing for gameboy power switching circuit.
Paul blue asus
2018-02-13 14:36:43 -0600
3c359ac5caDouble and long overdue commit..
Paul blue asus
2018-01-01 23:32:09 -0600
535b45be27Committing working build that was used for flashing STM8 SNES v3.1 boards for SF2 builds. Not necessarily the most clean, but it was stable and worked well.
Paul blue asus
2017-12-20 09:28:01 -0600
b7364b964clittle bit of clean up commit. Updating readme for little more direction for stm32 ARM cortex-M0 building. Also adding more explicit error message if VID/PID of device found, but unable to open due to drivers not being installed.
Paul blue asus
2017-12-19 02:39:47 -0600
235e1649f1Successfully flashing STM8 CIC via SWIM! currently flashes binary file to flash and sets option byte for TIM1 TODO program ROP byte! next up to control flash /OE pin via SWIM instead of EXP0
Paul Molloy
2017-10-22 22:57:03 -0500
0dd8828744Long over due commit... -Updated STM devices to always run @ 48MHz Doesn't seem to cause any problems with SNES flashing couple thousand SF2 boards have been flashed with this build without issues -Added note to usb_operations.c as manf/prod ID can't be read if drivers aren't installed. Caused issues for Todd as he hadn't installed drivers for new hardware. -STM swim operations are working pretty well for SNES v2 and v3 boards Haven't even touched SWIM on AVR core yet... SWIM is pretty pin independent but only implemented on EXP0 so far Reads "ROTF" aren't bullet proof but they're pretty good. Biggest room for improvement aside from adding a legit pullup would be to have an interrupt trigger the device header bit falling edge instead of the current polling method which has decent amount of jitter. Implementing interrupts would also probably allow for more easily supporing reads longer than a single byte...
Paul Molloy
2017-10-22 17:09:21 -0500
49b4639aa4Have basic Low Speed SWIM read on the fly working. Only reads one byte, but good enough.. to get things done.
Paul Molloy
2017-09-12 22:36:25 -0500
0e0e307f64removing junk files accidentally commit last time.
Paul Molloy
2017-09-04 14:14:18 -0500
f4bbad3d4aHave SWIM write communications working on STM Adatper and INL6. Able to enter active mode and Write on the fly. Simple test to toggle LED on STM8 GPIO works! Still quite far from ideal setup. Some things needed: -defines for ACK/NAK/NO_RESP in dictionary to report inteligbly to lua -move test SWIM code into separate lua script -define STM8-CIC registers for easier calling from lua -entering active mode is too board dependent, need to use swim_base -Need to make better use of device timers for entering active mode -arm assembly is quite a mess, unaware of calling convention when writting -stopping more than just r0-4, r5+ need to be restored if used -thinking I'd like a full out assmebly file that gets compiled separately -nothing is done to support SWIM with AVR -hacking lack of powerful enough pullup on SWIM pin not much that can be done to get around this... don't want to add resistors to programmer for every pin I 'might' use don't want to add resistors to each board that's made -seems to work well enough, but reads will prob prove challenging -currently only running at slow speed with ton of NOPs
Paul Molloy
2017-09-04 13:53:37 -0500
6eb0570335Have stm devices activating SWIM on SNES STM8 CIC. AVR not yet working, performing low level SWIM operations will require decent amount of core specific code due to differences in pin driver styles, timers, cycles per instruction, etc. The fact that SWIM pin changes based on the board ADDR0, DATA0, EXP0, etc multiplies this low level code... Thinking about executing SWIM low level drivers from SRAM. Initialization could include loading these routines to SRAM. For now just focusing on supporting SWIM on STM cores for SNES boards.
Paul Molloy
2017-09-02 12:38:56 -0500
476c28cb24slight tweak to buffer.c for firmware, want buffer status to be last thing set as other things may trigger off of this.
Paul Molloy
2017-08-24 13:56:09 -0500
5ceb148c85Have SNES flashing and dumping working for all 3 kazzos on SNES v3.0p prototype which has STM8 CIC driving flash /OE with inversion of SYS /RST. STM8 CIC is running at 16Mhz, and doesn't actually function as CIC. Still need to come up with special way to signal to CIC that it's plugged into a programmer and not a console.
Paul Molloy
2017-08-24 13:41:08 -0500
4b3c822a24Have basic SNES cart detection and dumping working. Dumping mario paint works on both inl6 and original kazzo just fine. Dumping v3 prototype has a few byte corruptions on inl6, but is fine on original kazzo. The same bytes often fail, but not consistently. Tinkered with adding delay, but that didn't help. Also have issue with adapter not dumping properly. Prob bug with HIGH ADDR on that board need to sort out still. Going to focus on erasing and dumping next then come back to some of these issues.
Paul Molloy
2017-08-21 12:30:39 -0500
dfeaf960efcommiting files as they were left a couple weeks ago.. Not 100% sure what all happened with this update.. :/
Paul Molloy
2017-08-20 16:38:12 -0500
82a6b606ddHave PRG-ROM flashing working for NROM on AVR KAZZO Need to get stm32 up and working, currently the usbFunctionWrite causes device descriptor request to fail on stm32 devices. So need to do some debugging there which I was expecting..
Paul Molloy
2017-08-08 15:08:39 -0500
f4aa907e69Have CHR-ROM dumping working for NROM cart. Learned lesson yet again to stop putting logic inside ADDR/DATA port macros. The expansion of putting logic inside those is hard to predict, it ends up varing based on mcu hardware.. Just don't do it!! Have some cleaning up on buffer.c that's needed. Currently have to give the device some time to dump buffer prior to calling payload. The buffer manager should be able to handle this itself! Also don't think I should have to reset raw buffers and reallocate from scratch between PRG/CHR dumping! But that's currently the case. It works for now on AVR kazzo and STM adapter & inlretro6.
Paul Molloy
2017-08-07 23:10:33 -0500
7e8ad86d3aBig update, have PRG-ROM dumping on NROM working for all devices! tested and verified on purple, green, and yellow/orange avr kazzos and stm32 inlretro6 proto, and stm32 adapter with yellow kazzo board
Paul Molloy
2017-08-07 16:06:23 -0500
cb2d2e693acommitting fix to PURPLE_KAZZO as noted last commit
Paul Molloy
2017-08-05 16:15:00 -0500
8b5650b75fWell over due commit with lots of updates.. Have separate lua modules now in scripts/app folder Dictionary calls are now their own lua module firmware now capable of calling multiple different dictionaries have firmware & lua io and nes dictionaries, able to detect NES and famicom carts. Created expansion port abstraction so most kazzo versions behave identically. Created separate make file for stm adapter and inl6 added PURPLE_KAZZO and GREEN_KAZZO defines back in. They work well enough for sensing NES vs famicom carts so far. GREEN_KAZZO requires PURPLE_KAZZO to also be defined. GREEN_KAZZO is also only compatible with AVR_CORE due to software_AHL/AXL functions specifically written for AVR. I think things will work if a STM_ADAPTER is placed on a PURPLE_KAZZO and both those defines are made as only real difference is software tying of AXL and X_OE. But haven't tested this aside from ensuring it compiles. Have correction to pinport_al.h that will commit immediately after this.
Paul Molloy
2017-08-05 16:04:59 -0500
ec725f7e33Getting closer to how I'd like to handle dictionary calls with lua. Effectively deleted old dictionary call function/files. Created lua_usb_vend_xfr function so lua can directly send and receive vendor setup transfers.
Paul Molloy
2017-08-01 17:17:13 -0500
1e5ea8cc7eHave USB drivers successfully calling usbFunctionSetup when vendor setup packet arrives. Had issue with return data on STM32 not being properly aligned when the rv array was only 8bit. So defining it as a 16bit array and then pointing a 8bit pointer to it seems to be an easy fix for now.
Paul Molloy
2017-07-24 21:56:34 -0500
ea5f1d9842Creation of pinport abstraction layer to make firmware more generic to the underlying hardware/mcu. Created avr_gpio.h to define AVR pin registers in a struct fashion similar to what's common with ARM code. Doing that makes things much easier to abstract in pin macro 'functions'.
Paul Molloy
2017-07-22 23:58:16 -0500
750ab2f082Creating one Makefile that calls the other makefiles as shortcut
Paul Molloy
2017-07-22 17:26:44 -0500
3779afe88dSuccessfully building avr & stm core with one set of files. Two different Makefiles, specify which with -f file flag: make -f Make_avr clean program make -f Make_stm clean program
Paul Molloy
2017-07-22 17:03:23 -0500
895bd6a737Completely trimmed avr build down to bare bones, only completing enumeration with host, no vendor/class requests handled. move avr builds into avr_release dir move original source files into source/old for future reference.
Paul Molloy
2017-07-22 14:30:03 -0500
1ec74eaf68Starting to separate AVR build so STM can be build alongside in same dir Modified Makefile to include project name, moved usbdrv to usbdrv_Vusb renamed project avr_kazzo instead of main added .swp files to gitignore
Paul Molloy
2017-07-22 14:01:07 -0500
aabf49d1eecreating gitignore file
Paul Molloy
2017-07-22 13:42:05 -0500
464598be21setting device current to threshold without requesting more 200/2= 100mA.
Paul Molloy
2017-07-22 13:30:41 -0500
41c3948262Completed parsing of dictionary #define statements to create dictionary tables.
paul eeepc
2017-07-10 03:16:45 -0500
4a24f72e3fNow able to make dictionary call from lua scripts. Currently have redefined table that needs to align with shared dictionary files.
Paul Molloy pinkASUS
2017-07-09 18:51:37 -0500
f4fe81da96adding note to readme to build lua separately
Paul Molloy
2017-07-05 18:07:07 -0500
d713dcc6c8Deleted lua makefile from attempt to move last commit. Updating host makefile to support building lua separate from host app. Not the best makefile setup but it works. 1) cd host/source/lua 2) make o a 3) cd host 4) make
paul eeepc
2017-07-05 17:57:17 -0500
d7cc5b59c2Moving lua makefile to lua source so objects can be compiled separately.
paul eeepc
2017-07-05 17:20:45 -0500
0b2aac8b52Fixing compilation on linux. Needed forward slashes on includes, and -lm for linking math libraries. Getting warning about lua's use of tmpnam, and to use mkstmp instead.. Not sure I care.
paul eeepc
2017-07-05 02:49:52 -0500
8efdc95748adding inlprog.c with changes referenced in last commit.
Paul Molloy
2017-07-05 01:27:17 -0500
2cc77e5fbaBasic Lua operations working. Code from "programming in Lua 4th ed" by Roberto Ierusalimschy.
Paul Molloy
2017-07-05 01:15:13 -0500
a8124e8983Resolved issue where final buffer wasn't getting fully flashed. Added check to ensure buff1 is done before quitting and resetting buffers. Currently have a hacked load_oper_info_elements_chr function to test CHR-ROM flashing. NROM PRG & CHR flashing and dumping tested and working on black ASUS win10 machine. Firmware still doesn't implement previously added feature for oper_info rd/wr_func pointer. flash/dump.c simply overrides by providing the function pointer based on memory type.
Paul Molloy
2017-06-04 20:13:58 -0500
c25e9e7b39Fixing CHR-ROM dumping to align with previous PRG-ROM dump commit. Able to flash PRG-ROM on NROM cart, but CHR-ROM not working. Probably something to do with firmware updates only focusing on PRG-ROM temporarily..??
Paul Molloy
2017-04-09 22:39:14 -0500
b28b2193a6Improving dump functionality. Need to make sure buffer has completed dump operation and is ready to be read back before calling IN transfer. Similar to how need to make sure buffer is empty prior to out transfer. This slows things down, but prevents problems for long read routines.
Paul Molloy
2017-02-20 01:54:34 -0600
748c474ddbFlashing operations working, cleaning up a few items.
Paul Molloy
2017-02-20 01:45:22 -0600
52a1b306c9Flash NROM PRG-ROM operations are pretty well up to snuff now.
Paul Molloy pinkASUS
2017-02-13 23:51:51 -0600
fe04496cfbFlashing NROM PRG-ROM working but unstable. Not sure how I thought flash operations were previously working as there were many bugs I had to correct to support flash operations properly. Operations module appears to be working so far, still need to pass functions to operation module. Flash operations verify PRG-ROM 32KB writes working with file comparison. Currently dependent on extra buffer status reads to delay next buffer. I think the write operation is taking longer than the usb load operation. Potentially due to slow code of operation module, but also possible I had only been testing with slow eeepc linux machine previously. Perhaps combination of both.
Paul Molloy pinkASUS
2017-02-13 11:49:57 -0600
31c063cd78adding note to windows build readme, issue with path variables being too low for copy commands in Makefile
Paul Molloy pinkASUS
2017-02-10 09:37:16 -0600
babd916bf8wrote a couple bytes to dual port board, test now reads them back.
Paul Molloy
2017-02-10 09:18:12 -0600
5b85d76e7fcommiting updated copy of .exe
Paul Molloy
2017-02-10 08:53:34 -0600
56ea22f750fixing some typo bugs to permit compiling. Updating test.c to perform some dual port board tests.
Paul Molloy
2017-02-10 08:51:12 -0600
d1aacecd6cCommitting some edits made awhile ago that look legit. Need to get things rolling again with this project!!!
paul eeepc
2017-01-29 17:47:29 -0600
4b0c340eb1Creations of operation module and dictionary. Things appear to be working with some early testing. Assumption that oper_info elements are aligned in SRAM linearly appears to hold true. Researching this I found it probably was true, but can't be certain esp if gets changed in the future to not be purely 8byte sized elements. Still need to provide means to decode function numbers info function pointers.
paul eeepc
2016-12-25 13:48:30 -0600
de9b5d67a4Basic flashing operatoins working. Still need to do some tests and erasing before flashing. Need to verify page programmed successfully as it currently just continues even if unable to flash proper data. Need to make write page utilize variables for bank address based on mapper and/or memory as currently doesn't flash CHR-ROM due to $5555 $2AAA being above address space of CHR-ROM
paul eeepc
2016-12-18 01:26:51 -0600
876b526e8cSome timing tests on windows machine. Double buffering was pretty successful only 1KBps speed drop when actually dumping real cart data.
Paul Molloy
2016-12-12 22:31:46 -0600
a7eaf970b2CHR-ROM dumping working for NROM checksum appears to be off need to compare files.
paul eeepc
2016-12-12 10:56:53 -0600
e483406c01firmware main.hex commit from last time along with versions of other kazzos AVR Memory Usage ---------------- Device: atmega164a
paul eeepc
2016-12-12 00:54:07 -0600
c2359e67a5Dumps offically working for PRG-ROM on NROM!!! Found bug with setting map_n_part due to >/< instead of >=/<= for setting called_buff... Was also setting mem_type and part backwards in dump.c The had issues with usb timing out for more than 1 buffer read back Problem was due to lack of usbPoll while dumping during double buffering Adding usbPoll to page read to correct issue
paul eeepc
2016-12-12 00:38:01 -0600
49ec51e767Much of dumping code for PRG-ROM completed but have some bugs with setting buff elements working on debugging...
paul eeepc
2016-12-11 20:34:43 -0600