Commit Graph

97 Commits

Author SHA1 Message Date
Paul Molloy 7f21176c2f Merge branch 'master' into 'master'
Added SNES SuperFX hardware type and fixed save ram header issue with Super Mario World 2: Yoshi's Island and Stunt Race FX

Closes #58 and #35

See merge request InfiniteNesLives/INL-retro-progdump!30
2020-06-13 22:21:56 +00:00
Joel Smith 660f7f1105 Change label to reflect Stunt Race FX 2020-06-01 20:56:46 +00:00
Max ba1d0d3619 Fix issue in inlretro.lua with missing jtag.lua library (doesn't exist in repo) 2020-05-28 08:06:19 -05:00
Max e0fc7956e8 Fixed off-by-one error with unrom banktables 2020-05-28 07:01:28 -05:00
Joel Smith 18e3e3c6a2 wording changes 2020-04-20 19:46:25 -07:00
Joel Smith 13c73053d0 Added support for SNES save ram length from Expansion Ram Header (if valid) fixes issues with SMW 2: Yoshi's Island and Stunt Race FX 2020-04-20 19:21:25 -07:00
Joel Smith 4d83c034b1 Added values for SNES Stunt Race FX rom type and SRAM 2020-04-20 13:32:22 -07:00
Joel Smith c444a9d152 Added hardware code for SNES SuperFX + SRAM 2020-04-19 21:53:51 -07:00
Joel Smith 650b523b89 Added hardware types for OBC1 and SA-1 2020-04-19 20:33:28 -07:00
Joel Smith d220212bdf Added SNES SuperFX hardware type 2020-04-19 19:06:48 -07:00
Joel Smith 6bd9342584 missing file jtag.lua 2020-04-19 16:31:41 -07:00
Paul XPS aec0b7fa42 Forgot to commit genesis_v1.lua last time to support changes made to
shared_dict_sega.h
2020-01-14 09:24:28 -06:00
Paul Desktop ASUS-C7H db032c793b working SNES flash script, must update script pointed to by inlretro2.lua. example use 4mbit/512KByte LoROM & verify after writting: inlretro.exe -s scripts\inlretro2.lua -m lorom -z 4 -p romname.sfc -v dump.bin 2019-11-19 12:57:09 -06:00
Paul XPS 4b3a0c8a8f Paul's Infinite workbench stream updates from MMC5 & sega genesis
battery ram save dumping, and flash board programming.
-MMC5 updates fixed battery ram dumping
-genesis_v2.lua script supports dumping battery ram, and flashing ROM
only prototype flash board.  The firmware isn't very clean, but working
for now.
2019-11-01 10:15:41 -05:00
Paul XPS 9090177ce3 Some random additions, mostly to firmware.
-SNES support for 32Byte page writes, but host lua scripts are a bit of
a mess and still need committed.  Firmware isn't very clean either but
it's working..
-SEGA stuff is early and non-working.  Got it working in a separate
branch which will commit shortly.
-SWIM updates for better erasing, flashing, and dumping routines
-FILES updates for jtag and some other niceties
-JTAG is working now for LC4032V & Mach-XO 256
2019-11-01 00:06:14 -05:00
Paul Desktop ASUS-C7H d7658d0ab2 GTROM fix, forgot about adding (prob unnecessary) cur_bank write to the
firmware flash routine and neglected to commit my local copy of
gtrom.lua which was needed for that change.
2019-09-19 10:00:57 -05:00
Paul Desktop ASUS-C7H cc4aa6c67c -------------------------------------------
Firmware application version #3 release
-------------------------------------------

N64 updates:
Some extra timing delays were necessary for consistent dumping.
Includes fixes for N64 dumping that proved working for me on 10+ carts I
dumped successfully.  There is now a .csv in docs folder with cart size
in bytes, divide that number by 131,072 to get size in mbits for -z
flag.  Includes CRC32 checksum that can be verified using HxD hex
editor.  N64 file output is big-endian so it reads as it should in hex
editor which is .z64 file format.  lua script updated to print out the
game name from the in rom header.

NES updates:
flashing support for quite a few different mappers including GTROM,
MMC2, MMC4, action53, easyNSF, and other tweaks to rd/wr timings.

FIRMWARE UPDATES:
inlretro2.lua script now tries to poll the firmware "application
version" and suggest updating your firmware if you're not running the
version in this release.  You can always update your firmware using the
bootloader method in the readme.  But there is an easier method if you
have an stm32 based device (translated: you purchased your device in
2018 or later). AND you're already running firmware version v2.3.x

simply run the new scripts which were added in this commit:

	PCB version 2.0 or 2.1 (large square PCB with option for 6 connectors)
	>inlretro.exe -s scripts\inlretro_inl6fwupdate.lua

	PCB version 2.0N (smaller PCB with NES connector only:
	>inlretro.exe -s scripts\inlretro_inlNESfwupdate.lua

Now that it's easier for the host software to detect the firmware
application version can work towards having the scripts automatically
update the device firmware for you..  But still need to implement this..
2019-08-16 10:27:19 -05:00
Joel Smith c26dca8c8e Fixed SNES v2proto_hirom to detect and set ROM size if not provided (or set to 0) and is known in rom_ubound table 2019-07-10 00:33:50 -07:00
Joel Smith 7992165100 Merge branch 'fixsramsize' 2019-07-10 00:01:12 -07:00
Joel Smith 20bb2b729e Fixed SNES RAM and ROM check so if it is unknown and not provided it will break and alert user 2019-07-09 23:59:36 -07:00
Joel Smith 8cda1efe02 Allow SNES Rom and Ram sizes to be displayed if not in table 2019-07-09 23:24:06 -07:00
Joel Smith 4f56ea85a6 Added support for SNES autodetection of 256 Kb SRAM in v2proto_hirom 2019-07-09 22:36:21 -07:00
beyondcoast 24130b476d Fix issues with snes autodetection and header parsing. LoROMs can have valid headers in HiROM addr and vice versa. 2019-05-06 21:20:50 -05:00
beyondcoast 8f9e5bb3c2 Fix overdumping 16KB nrom/cnrom 2019-04-21 17:17:32 -05:00
Paul XPS 577277cd2b Basic NES file header creation. PRG/CHR-ROM sizes are filled in based
on provided prg/chr rom input args for dumping.  Mirroring is sensed &
entered for fixed mirror mappers.  So this is basic iNES file format.

Still don't have automatic banktable locating, nor mapper detection.

But this provides a basic header that should work with most currently
supported NES mappers.  If the headers need tweaked, I recommend opening
in Mesen and using it's header modifcation tool.
2019-03-21 20:28:53 -05:00
beyondcoast b8d39e3e3c Add header parsing for Genesis, ROM size autodetection, checksum validation. 2019-03-16 17:20:26 -05:00
beyondcoast 403ba88f86 Merge branch 'master' of https://gitlab.com/InfiniteNesLives/INL-retro-progdump
Add gtrom support.
2019-03-03 15:37:45 -06:00
beyondcoast da9945954b Fix HiROM/LoROM detection, add autodetect for sram sizes, make displaying header resilient to unknown values. 2019-03-03 15:34:03 -06:00
Paul Win10 shuttle PC 0884d6608d Support for GTROM mapper 111. Both INLretro6 firmware and AVR firmware
included.  Not making an offical firmware release, will have to upload to
INLretro6 with fwupdate call.

The colordream firmware updates are also included.  But not the host
scripts, need to clean them up a bit.
2019-02-16 10:04:11 -06:00
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
beyondcoast 1d7f40b097 inlretro2 support for snes, all consoles now supported via CLI 2019-01-23 20:19:17 -06: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
beyondcoast d8d610b290 Merge branch 'master' of https://gitlab.com/beyondcoast/INL-retro-progdump into cleanup 2018-12-20 07:40:36 -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
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
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
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
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
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 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
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