domingo, 23 de outubro de 2016

NES Braidulator LUA SCRIPT WORK SUPER C. Konami NES






-- NES Braidulator VERSION 1
--(C) Antony Lavelle 2009       got_wot@hotmail.com      http://www.the-exp.net
-- A Lua script that allows 'Braid' style time reversal for Nes games being run in FCEUX
--'Braid' is copyright Jonathan Blow, who is not affiliated with this script, but you should all buy his game because it's ace.
--This is my first ever time scripting in Lua, so if you can improve on this idea/code please by all means do and redistribute it, just please be nice and include original credits along with your own :)
---2016 Note: Super C. (Konami) Work Very Well! (Duckmite Note)
---Charge Power And Press Select To Work


--Change these settings to adjust options


--Which key you would like to function as the "rewind key"

local rewindKey = 'select'


--How much rewind power would you like? (The higher the number the further back in time you can go, but more computer memory is used up)
--Do not set to 0!

local saveMax = 1000;




--The stuff below is for more advanced users, enter at your own peril!



local saveArray = {};--the Array in which the save states are stored
local saveCount = 1;--used for finding which array position to cycle through
local save; -- the variable used for storing the save state
local rewindCount = 0;--this stops you looping back around the array if theres nothing at the end
local savePreventBuffer = 1;--Used for more control over when save states will be saved, not really used in this version much.
while (true) do
    savePreventBuffer = savePreventBuffer-1;
    if savePreventBuffer==0 then
        savePreventBuffer = 1;
    end;
    joyput    = joypad.read(1);
    if joyput[rewindKey] then
        savePreventBuffer = 5;
        if rewindCount==0 then
            --makes sure you can't go back too far could also include other things in here, left empty for now.   
        else   
            savestate.load(saveArray[saveCount]);
            saveCount = saveCount-1;
            rewindCount = rewindCount-1;
            if saveCount==0 then       
                saveCount = saveMax-1;
            end;
        end;
    end;
    if savePreventBuffer==1 then
        gui.text(80,15,"");
        saveCount=saveCount+1;
        if saveCount==saveMax then
            saveCount = 1;
        end
        rewindCount = rewindCount+1;
        if rewindCount==saveMax-1 then
            rewindCount = saveMax-2;
        end;
        save = savestate.create();
        savestate.save(save);
        saveArray[saveCount] = save;
    end;
    local HUDMATH = (math.ceil((100/saveMax)*rewindCount));--Making the rewind time a percentage.
    local HUDTEXT = "REWIND POWER: ".. HUDMATH .."%";
    gui.text(80,5,HUDTEXT);--Displaying the time onscreen.
    FCEU.frameadvance();
end;

Nenhum comentário:

Postar um comentário