Merge branch 'master' of https://gitlab.com/InfiniteNesLives/INL-retro-progdump
This commit is contained in:
commit
16f4f55ab2
|
|
@ -1,5 +1,15 @@
|
|||
|
||||
Table of Contents:
|
||||
===================================
|
||||
* [Installing Device Drivers](#INSTALLING-DEVICE-DRIVERS)
|
||||
* [Easy Rippings](#EASY-RIPPINGS)
|
||||
* [Running the Host Application](#RUNNING-THE-HOST-APPLICATION)
|
||||
* [Updating Device Firmware](#UPDATING-DEVICE-FIRMWARE)
|
||||
* [STM32 ARM based device versions "INLretro" V2.0 and later](#STM32-ARM-BASED-DEVICE-VERSIONS-"INLRETRO"-v2.0-AND-LATER)
|
||||
* [AVR based devices versions "KAZZO" V1.4 and eariler](#AVR-based-devices-versions-"KAZZO"-V1.4-and-eariler)
|
||||
* [Software & Firmware Building](#SOFTWARE-&-FIRMWARE-BUILDING)
|
||||
* [Linux/Mac](#Linux/Mac)
|
||||
* [Windows](#Windows)
|
||||
|
||||
INSTALLING DEVICE DRIVERS:
|
||||
===================================
|
||||
|
||||
|
|
@ -20,9 +30,13 @@ If it worked properly you'll get a "install successful" page, click FINISH.
|
|||
In windows you should be able to see "INLretro-prog" listed in "devices and printers" from
|
||||
the control panel.
|
||||
|
||||
Easy Rippings
|
||||
-----------------------------------
|
||||
|
||||
If you're only looking to rip your own carts, you can stop here and look at the [EasyRipping](./docs/EasyRippingGuide.md) guide.
|
||||
|
||||
If you recently bought your INL-Retro, you shouldn't have to update firmware, but below are steps to update the firmware when future versions are released. If you have an older version, it's recommended you update the firmware first.
|
||||
|
||||
===================================
|
||||
RUNNING THE HOST APPLICATION:
|
||||
===================================
|
||||
|
||||
|
|
@ -50,14 +64,13 @@ USB connector on the INLretro programmer/dumper to reset the device, and try aga
|
|||
|
||||
|
||||
|
||||
===================================
|
||||
UPDATING DEVICE FIRMWARE
|
||||
===================================
|
||||
|
||||
|
||||
----------------------------------------------------------
|
||||
STM32 ARM based device versions "INLretro" V2.0 and later
|
||||
----------------------------------------------------------
|
||||
-----------------------------------
|
||||
|
||||
|
||||
If you purchased your device in 2018 or later you have this version
|
||||
This includes devices aquired with NESmaker kits.
|
||||
|
||||
|
|
@ -304,10 +317,9 @@ LINUX DFU-UTIL STEPS:
|
|||
sudo dfu-util -d 0483:* -a 0 -D INLretro6_PCBv2_0_FWv2_03_01.dfu
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------
|
||||
AVR based devices versions "KAZZO" V1.4 and eariler
|
||||
----------------------------------------------------------
|
||||
-----------------------------------
|
||||
|
||||
If you purchased your device in 2017 or earlier you have this version
|
||||
This should also apply if you made your own kazzo based on the open
|
||||
source design. Although I can't assure this software works with
|
||||
|
|
@ -397,14 +409,12 @@ and the device should be running the latest firmware ready to use the latest sof
|
|||
|
||||
|
||||
|
||||
===================================
|
||||
SOFTWARE & FIRMWARE BUILDING
|
||||
===================================
|
||||
Some build instructions follow, but they shouldn't be needed if you're running the
|
||||
released firmware on Windows.
|
||||
|
||||
|
||||
===================
|
||||
Linux/Mac
|
||||
===================
|
||||
|
||||
|
|
@ -464,37 +474,38 @@ STM32 FIRMWARE:
|
|||
Need arm-none-eabi-gcc
|
||||
|
||||
|
||||
===================
|
||||
Windows
|
||||
===================
|
||||
HOST APPLICATION:
|
||||
|
||||
Install minGW:
|
||||
download: http://www.mingw.org/wiki/Getting_Started
|
||||
launch: Installation manager default settings
|
||||
select: mingw32-base
|
||||
(primary need is gcc)
|
||||
select: msys-base
|
||||
(primary need is make, basic unix commands are nice to have)
|
||||
optional: msys-openssh
|
||||
(helpful if using gitlab to pull updates)
|
||||
lua for host app dev
|
||||
minGW utilities can be easily added or removed at any time with minGW installation manager.
|
||||
Add C:\MinGW\bin & C:\MinGW\msys\1.0\bin to your PC's enviroment PATH variable
|
||||
-control panel search: "edit system environment variables
|
||||
-System properties window, Advanced tab, click Environment Variables...
|
||||
-System Variables pane: Select and edit "PATH"
|
||||
-Add new entries below assuming you used default location for minGW
|
||||
C:\MinGW\bin
|
||||
C:\MinGW\msys\1.0\bin
|
||||
-I had troubles once with cp (copy) commands in Makefile
|
||||
|
||||
* download: http://www.mingw.org/wiki/Getting_Started
|
||||
* launch: Installation manager default settings
|
||||
* select: mingw32-base
|
||||
* (primary need is gcc)
|
||||
* select: msys-base
|
||||
* (primary need is make, basic unix commands are nice to have)
|
||||
* optional: msys-openssh
|
||||
* (helpful if using gitlab to pull updates)
|
||||
* lua for host app dev
|
||||
* minGW utilities can be easily added or removed at any time with minGW installation manager.
|
||||
* Add C:\MinGW\bin & C:\MinGW\msys\1.0\bin to your PC's enviroment PATH variable
|
||||
* -control panel search: "edit system environment variables
|
||||
* -System properties window, Advanced tab, click Environment Variables...
|
||||
* -System Variables pane: Select and edit "PATH"
|
||||
* -Add new entries below assuming you used default location for minGW
|
||||
* C:\MinGW\bin
|
||||
* C:\MinGW\msys\1.0\bin
|
||||
* -I had troubles once with cp (copy) commands in Makefile
|
||||
causing a crash, even though the commands works outside of make. Bumping the
|
||||
mingw path variables to the top of all my path variables corrected this issue.
|
||||
So that might help if you have similar issues...
|
||||
|
||||
Now host app can be built from windows command prompt command make when in host directory
|
||||
|
||||
-go to host
|
||||
-make all
|
||||
* go to host
|
||||
* make all
|
||||
|
||||
If you want to build your own AVR FIRMWARE:
|
||||
Download and Install WinAVR
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# Table of Contents
|
||||
1. [Basic Installation](#BASIC-INSTALLATION)
|
||||
2. [NES](#NES)
|
||||
|
||||
# Basic Installation
|
||||
|
||||
Follow the steps in the [README](../README.md) to update the frimware if needed and install the device drivers. You will only need the drivers if you're on Windows.
|
||||
|
||||
If you just recieved your device, you probably won't need to update the firmware, but please check the readme if something changes.
|
||||
|
||||
# NES
|
||||
|
||||
1. First, go ahead and connect your INL-retro to your PC
|
||||
1. Next you're going to need is NES game. Go ahead and plug that into the correct slot of your INL-retro board. Word of advice: when removing the game, use your index fingers to pull the game up and push on the board with your thumbs.
|
||||
1. After that you'll need to grab some parameters from another git repository [http://tuxnes.sourceforge.net/nesmapper.txt](Cartridge Mappings). These are the cartridge mappings will help you rip your game. Look for it in the list. What you need is the PRG size, CHR size and the Mapper. Take note of those for your game. Some of the Mappers listed may not yet be supported, so be aware of that if you get any errors.
|
||||
1. Next, clone/download this repository
|
||||
1. Navigate to the INL-retro-progdump/host folder in a command prompt or terminal. This might help you [How to Open Command Prompt at Current Location](http://www.ilovefreesoftware.com/25/windows-10/open-command-prompt-folder-windows-10.html)
|
||||
1. The command you're going to run is
|
||||
>```inlretro -s scripts/inlretro2.lua -c NES -x 64 -y 16 -d C:/User/YOU/Documents/GAME.nes```
|
||||
1. Notice the -x and -y flags. The numbers that follow them correspond to PRG size and CHR size in the previous step. The -c flag is the mapper. Replace those with the parameters for your game. The flag -d is the destination, replace that with whatever folder path you feel like.
|
||||
1. Finally run it! You should get a success message and you should be able to play your new rom file! If you run into any errors, remember not every mapper is supported. It is possible the Mapping listing is incorrect. Play with the flags if you want and see if you can get to work.
|
||||
|
|
@ -64,6 +64,7 @@ local ram_size_tbl = {
|
|||
[0x01] = "16 kilobits",
|
||||
[0x02] = "32 kilobits",
|
||||
[0x03] = "64 kilobits",
|
||||
[0x05] = "256 kilobits"
|
||||
}
|
||||
|
||||
-- Translates ram size in header to KBytes.
|
||||
|
|
@ -72,6 +73,7 @@ local ram_size_kb_tbl = {
|
|||
[0x01] = 2,
|
||||
[0x02] = 4,
|
||||
[0x03] = 8,
|
||||
[0x05] = 32
|
||||
}
|
||||
|
||||
local destination_code = {
|
||||
|
|
@ -368,10 +370,8 @@ function isvalidheader(internal_header)
|
|||
-- Spot check a few fields.
|
||||
-- TODO: Check more/all fields, look for printable name?
|
||||
local valid_rom_type = hardware_type[internal_header["rom_type"]]
|
||||
local valid_rom_size = rom_ubound[internal_header["rom_size"]]
|
||||
local valid_sram_size = ram_size_tbl[internal_header["sram_size"]]
|
||||
local valid_destination_code = destination_code[internal_header["destination_code"]]
|
||||
return valid_rom_type and valid_rom_size and valid_sram_size and valid_destination_code
|
||||
return valid_rom_type and internal_header["rom_size"] and internal_header["sram_size"] and valid_destination_code
|
||||
end
|
||||
|
||||
function test()
|
||||
|
|
@ -536,6 +536,7 @@ local function dump_ram( file, start_bank, ram_size_KB, mapping, debug )
|
|||
local num_banks
|
||||
|
||||
--determine how much ram to read per bank
|
||||
if ram_size_KB == nil then ram_size_KB = 0 end
|
||||
if (ram_size_KB < KB_per_bank) then
|
||||
num_banks = 1
|
||||
KB_per_bank = ram_size_KB
|
||||
|
|
@ -868,13 +869,15 @@ local function process(process_opts, console_opts)
|
|||
end
|
||||
end
|
||||
|
||||
if ram_size == 0 then
|
||||
if (ram_size == 0) or (ram_size == nil) then
|
||||
ram_size = ram_size_kb_tbl[internal_header["sram_size"]]
|
||||
print("RAM Size not provided, " .. ram_size_tbl[internal_header["sram_size"]] .. " detected.")
|
||||
assert(ram_size, "SRAM Size unknown and not provided, please add ram size to console_opts")
|
||||
print("SRAM Size not provided, " .. ram_size_tbl[internal_header["sram_size"]] .. " detected.")
|
||||
end
|
||||
|
||||
if rom_size == 0 then
|
||||
if (rom_size == 0) or (rom_size == nil) then
|
||||
rom_size = rom_size_kb_tbl[internal_header["rom_size"]]
|
||||
assert(rom_size, "ROM Size unknown and not provided, please add rom size to console_opts")
|
||||
print("ROM Size not provided, " .. rom_ubound[internal_header["rom_size"]] .. " detected.")
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue