Commit Graph

286 Commits

Author SHA1 Message Date
beyondcoast ba94792de8 fix mapping detection 2019-02-10 19:06:33 -06:00
beyondcoast 8f8bb2e9ff Add support for reading internal SNES Header, limited autoconfiguration (HiROM v LoROM). 2019-02-10 18:53:52 -06:00
Paul XPS 2a82101fa8 few missing changes for NESmaker support of older firmware from previous
commit.
2019-02-07 23:37:38 -06:00
Paul XPS 20cf2a81e5 Committing host version that works with all hardware versions that
shipped to NESmaker Kickstarter backers.

inlretro.exe -s scripts\inlretro2.lua -c NES -m mapper30v2 -x 512 -p
romname.nes
2019-02-07 23:16:28 -06:00
Paul XPS ca604c08b6 committing inlretro.exe for windows with the fix for the -k flag from previous commit 2019-02-07 16:06:13 -06:00
Paul XPS 935e73a83f fixing -k flag. 2019-02-07 16:05:04 -06:00
Paul XPS 8d88925cb6 changing variable to int hopefully resolves build errors on all systems.
Committing inlretro.exe for windows users to run latest command line
args.
2019-01-29 12:33:54 -06:00
Paul Molloy 63f2c1b358 Merge branch 'master' into 'master'
inlretro2 support for snes, all consoles now supported via CLI

See merge request InfiniteNesLives/INL-retro-progdump!20
2019-01-24 20:51:47 +00:00
beyondcoast 1d7f40b097 inlretro2 support for snes, all consoles now supported via CLI 2019-01-23 20:19:17 -06:00
Paul Molloy 870c33cb0c Merge branch 'master' into 'master'
Cleanup gb scripts/add to inlretro2, add -k CLI option for rom size in kilobytes

See merge request InfiniteNesLives/INL-retro-progdump!19
2019-01-14 21:16:54 +00:00
beyondcoast 7443c2bd17 Update comments/help for clarity about rom size and mappers 2019-01-14 07:19:54 -06:00
beyondcoast f899518989 Allow specifying rom size in kilobytes via CLI, do related plumbing to keep Kb as internal representation w/o breaking support for also accepting size in megabits. Cleanup gb scripts to remove unreachable code that was left around from their origin as nes scripts, migrate process()'s to be table driven, add support for gb in inlretro2.lua 2019-01-14 07:14:15 -06:00
Paul Molloy a11940f93d Merge branch 'master' into 'master'
Fix Issue #6

See merge request InfiniteNesLives/INL-retro-progdump!18
2019-01-11 16:23:25 +00:00
beyondcoast f1ce0f44e4 Fix -lm order in to unbreak Linux build 2019-01-02 15:18:59 -06:00
Paul Molloy 3b85cf152a Merge branch 'cleanup' into 'master'
Cleanup Genesis Script, host Makefile

See merge request InfiniteNesLives/INL-retro-progdump!17
2018-12-30 06:14:19 +00:00
Max e49ff6d2d0 Fix osx target -> machos 2018-12-21 03:30:13 +00:00
Paul Molloy 1e2aabc8d5 Merge branch 'master' into 'master'
Fix https://gitlab.com/InfiniteNesLives/INL-retro-progdump/issues/5

Closes #5

See merge request InfiniteNesLives/INL-retro-progdump!16
2018-12-20 17:04:31 +00:00
beyondcoast d844c9dd1f Make Linux and OS X aliases for Unix build, which will work for both. 2018-12-20 07:48:49 -06:00
beyondcoast d8d610b290 Merge branch 'master' of https://gitlab.com/beyondcoast/INL-retro-progdump into cleanup 2018-12-20 07:40:36 -06:00
beyondcoast 4fec4855b6 Update .gitignore to ignore VSCode metadata 2018-12-20 07:27:46 -06:00
beyondcoast d1e9e54874 Fix reported bug about nil path using -p flag to flash cart 2018-12-20 07:25:21 -06:00
beyondcoast 2972654e3b Cleanup of Genesis console script: add unsupported messages, dead code removal, table usage inlined, fix off-by-one error, make debug msgs variable controlled. 2018-12-20 07:16:46 -06:00
paul fa2e2afe4a adding -lm flag to include math library. 2018-12-18 20:46:48 -06:00
Paul Molloy 0678b8cb10 Merge branch 'master' into 'master'
Flag support cleanup

See merge request InfiniteNesLives/INL-retro-progdump!15
2018-12-18 04:55:24 +00:00
beyondcoast 97c5258f86 Add mmc5 support to inlretro2.lua 2018-12-17 19:19:17 -06:00
beyondcoast d33e9c2489 Deduplicate some logic in inlretro2.lua, make mapper/console flags case insensitive, update --help message. 2018-12-17 19:18:21 -06:00
Paul XPS 64ebb49617 Adding support for dumping MMC5 roms, wram reading/writting probably
works, but is untested.  (I don't own a MMC5 cart with PRG-RAM)

Tested with Laser Invasion for NES (128KB PRG & CHR ROMs)
2018-12-17 00:05:30 -06:00
Paul Molloy 9b9d4aaa2b Merge branch 'master' into 'master'
Add long versions for all existing options, ex: -c => --console

See merge request InfiniteNesLives/INL-retro-progdump!14
2018-12-16 19:13:22 +00:00
beyondcoast ea204fda31 Add long versions for all existing options, ex: -c => --console 2018-12-16 12:34:22 -06:00
Paul Molloy e8058e4da1 Merge branch 'master' into 'master'
Add GBA, Sega, N64 to inlretro2/CLI support + minor cleanup.

See merge request InfiniteNesLives/INL-retro-progdump!13
2018-12-10 05:44:19 +00:00
beyondcoast 6685122c09 Support N64,GBA,Genesis in inlretro2, add CLI -z option for ROM size in megabits 2018-12-09 17:53:03 -06:00
beyondcoast 5b47ff3fe6 Merge branch 'cleanup' 2018-12-09 17:10:59 -06:00
Paul XPS c1b35baf06 Big ol' commit with addition of support for GBA, Genesis, & N64
cartridge reading!

have some cleanup to do:
clean up sega dumping so don't need a page0/1
implement sega single reads

Add GBA to some of the common opcodes

dumping Don't think need addrH |= of mapper, but maybe this is key to
cleaning up first note..

gba, sega, n64 has extra NOPs, remove and test.

create pinport renames for sega pins, move mask defines to pinport.h

clean up comments for genesis page reads..
2018-12-08 16:01:59 -06:00
beyondcoast f0865b1aed Cleanup registration of lua globals, initialize INLOptions with empty strings to avoid potential segfault. 2018-12-07 09:23:47 -06:00
Paul XPS fa71e2ef2a GBA cart dumping supported!
haven't done anything with save ram/flash yet, but should be able to
dump rom for any/all GBA carts now!  Tested with 8Mbyte Metroid Fusion.
Took ~75sec at 107KBps
2018-12-06 20:12:21 -06:00
Paul Molloy 99e3494db8 Merge branch 'master' into 'master'
Comment-pocalypse. Delete lots of commented out code in inlprog.c

See merge request InfiniteNesLives/INL-retro-progdump!12
2018-12-07 02:08:06 +00:00
beyondcoast 0471dd65c2 Comment-pocalypse. Delete lots of commented out code in inlprog.c that are left over from a pre-lua era of the software. Add TODOs in lua app for safety checks that were in the removed commented out C code. 2018-12-06 18:57:22 -06:00
Paul XPS 7fbcabf3ea adding missing INL6 dfu release from last commit 2018-12-06 01:28:29 -06:00
Paul XPS e4debe5a13 Big update for firmware version v2.3.1
this is the verion getting flashed on all v2.0N NESmaker kits
v2.3.0 worked for basic functions, but was never shipped

Majority of effort revolved around testing mapper30 boards with the
smaller v2.0N INLretro with the NES connector alone for NESmaker kits.

added linear feedback shift register for test stream data generated
locally on the device.  I'm not 100% sure if this is any faster than
pushing the actual data via USB though.. :/  It's plenty fast on the
stm32 nearly instantaneous for 32KByte.  But the AVR takes a couple
sec..

Created "stuff" dictionary for things like that were I just want to add
small things and don't want to bother with a whole new dictionary.

Added file verification to the host with files.lua

Have some nes flash algos return post-written data so calling function
can decide if want to retry, fail, etc.

Changed host dictionary calls to assert instead of error because it
really shouldn't continue.  I didn't see an error when sending opcode to
wrong dict and caused head banging..

fwupdate permits bytes to be skipped, or force the update.  Found that
the fwupdater got assigned different addresses of ram depending on what
all other ram gets allocated to the main application

Some clean up of inlretro.lua

TODO:
host learn and keep track of the connected device.
Needed for ciccom right now, or knowing whether ciccom connection
is even present..
In the end maybe ciccom is better placed in firmware, but for small
transfers of only a few bytes it kinda makes sense to keep on the host.
Pinport gets quite messy with these made up pin names when really all I
want to do is toggle a specific pin on the NES connector.  So maybe some
double mappings would actually be okay, need to rethink that..

create different flash modes that either keep going, retry, or error
depending on the goal of the flash operation.  Fanout the return value
from flash algos to all of them.

have fwupdate assigned a specific area of ram so the ram pointer doesn't
change between builds.  Okay to ignore for now.

Realized can have STM32F070C6 devices execute bootloader by erasing all
the flash or perhaps even just the first word of flash according at
AN2606.  This wouldn't work for RB devices though.  This could be done
through the bootloader dict
2018-12-06 01:07:13 -06:00
Paul XPS 542bba7583 adding support for Gameboy MBC1 rom dumping 2018-12-02 16:41:54 -06:00
Paul XPS b904a6cb11 Print out device USB/fwudpater version after successful connection. The firmware application version should be printed from scripts. 2018-12-02 15:07:55 -06:00
Paul Molloy 7ede204444 Merge branch 'master' into 'master'
Change process() interface, standardize for all NES use cases. Add more CLI functionality and remove hardcoded ROM sizes.

See merge request InfiniteNesLives/INL-retro-progdump!11
2018-12-02 19:52:41 +00:00
beyondcoast 9ed0055cd8 Merge branch 'master' of https://gitlab.com/InfiniteNesLives/INL-retro-progdump 2018-12-02 13:34:44 -06:00
beyondcoast e3a09931b7 Fix ROM Size check logic, wrong variable names in battery-backed ram mappers. 2018-12-02 13:23:57 -06:00
beyondcoast 26f403d9f6 Change interface to process() for all NES mappers to make higher level scripts more flexible in using them, eliminate hardcoded prg,chr,ram sizes. Add CLI options to drive all this functionality directly. Note: Option letters are chosen somewhat arbitarily, next change will be to use argp so more descriptive flag names can be used ex: --nes_prg_rom_size_kb=16 in addition to single character shortnames. This will be important as console support expands. 2018-12-02 13:06:22 -06:00
Paul XPS 5a1c87f020 Merge branch 'master' of https://gitlab.com/InfiniteNesLives/INL-retro-progdump 2018-12-01 22:45:54 -06:00
Paul XPS cadc615621 Have Gameboy ROM only cart dump working!
Had to fix io_reset, was trying to modify GB POWER pin before turning on
GPIO blocks..

Will be putting nightly builds for "INL6" pcb v2.0 in the build_stm
folder.  This is the primary device most people have.  Not going to
bother versioning it.  But it can easily be flashed onto devices running
v2.3 firmware which includes the fwupdater now.  There is a call
commented out in inlretro.lua which performs the firmware update to the
nightly build:

fwupdate.update_firmware("../firmware/build_stm/inlretro_stm.bin")

the binary isn't versioned so there will be a warning, when flashing
over the top of it but it can be ignored.

Only really created the gameboy page dump function so far.  Next need to
implement the read/write functions so we can start interfacing with MBC
gameboy mappers.
2018-12-01 22:38:29 -06:00
Paul Molloy c9e2d643ee Merge branch 'unrom-find-banktable' into 'master'
UNROM: automatically find banktable

See merge request InfiniteNesLives/INL-retro-progdump!10
2018-12-01 18:33:52 +00:00
Paul Molloy ec596dd963 Merge branch 'master' into 'unrom-find-banktable'
# Conflicts:
#   .gitignore
2018-12-01 17:33:39 +00:00
Paul Molloy 48b7437d10 Merge branch 'master' into 'master'
Rearchitect Makefile to support dependency tracking / fast incremental builds.…

See merge request InfiniteNesLives/INL-retro-progdump!8
2018-12-01 16:59:43 +00:00