Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Final Fantasy IV Free Enterprise: Add New Game #3897

Open
wants to merge 127 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 87 commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
8e0e615
branch
Rosalie-A Mar 19, 2022
02512d2
Update .gitignore
Rosalie-A Mar 19, 2022
09ca302
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago
Rosalie-A Mar 19, 2022
38c13f3
Merge branch 'main' into wc
Rosalie-A Mar 19, 2022
df201b1
stuff
Rosalie-A May 26, 2022
6775070
stuff
Rosalie-A May 30, 2022
66e9bde
Merge branch 'main' of https://github.com/Rosalie-A/Archipelago
Rosalie-A May 30, 2022
89c6ef9
Merge branch 'main' into wc
Rosalie-A May 30, 2022
0fab959
initial testing maybe
Rosalie-A May 31, 2022
d8c6c29
zelda1
Rosalie-A Jun 11, 2022
a31cc60
Zelda 1
Rosalie-A Jun 11, 2022
26524a2
progress
Rosalie-A Jul 10, 2022
ea1c1e4
Merge branch 'main' of https://github.com/Rosalie-A/Archipelago
Rosalie-A Jul 10, 2022
4580c98
Merge branch 'main' into wc
Rosalie-A Jul 10, 2022
646ce68
Merge remote-tracking branch 'upstream/main'
Rosalie-A Jul 11, 2022
801665e
Merge branch 'main' into wc
Rosalie-A Aug 3, 2022
891d74f
zelda progress still on wrong branch
Rosalie-A Aug 10, 2022
c1a0dd0
Merge remote-tracking branch 'upstream/main' into wc
Rosalie-A Aug 10, 2022
3d93604
Update requirements.txt
Rosalie-A Aug 10, 2022
0dbe2b5
Merge branch 'wc'
Rosalie-A Aug 10, 2022
75e8a33
heroku deploy
Rosalie-A Aug 10, 2022
a4743d3
removed SM for now
Rosalie-A Aug 10, 2022
e759cf5
Update Procfile
Rosalie-A Aug 10, 2022
3dac1ac
Update Procfile
Rosalie-A Aug 10, 2022
634f2c3
deployment stuff
Rosalie-A Aug 10, 2022
cfe2bad
Update requirements.txt
Rosalie-A Aug 10, 2022
bdfbf2e
Update requirements.txt
Rosalie-A Aug 10, 2022
dbd94bc
Update requirements.txt
Rosalie-A Aug 10, 2022
e04f9b1
Update requirements.txt
Rosalie-A Aug 10, 2022
4fb1f13
Merge remote-tracking branch 'upstream/main'
Rosalie-A Aug 11, 2022
d26c23e
deplotment update
Rosalie-A Aug 11, 2022
0361640
readd sm
Rosalie-A Aug 11, 2022
da908c5
Update WebHost.py
Rosalie-A Aug 11, 2022
844570c
Update WebHost.py
Rosalie-A Aug 11, 2022
3118eac
Update WebHost.py
Rosalie-A Aug 11, 2022
9207c67
Update WebHost.py
Rosalie-A Aug 11, 2022
b5d0dd3
Merge remote-tracking branch 'upstream/main'
Rosalie-A Aug 12, 2022
2a7de71
fix type bug for now
Rosalie-A Aug 12, 2022
9af69dc
Testing Changes
Rosalie-A Aug 13, 2022
8f3ccd4
Zelda 1 pre-release
Rosalie-A Sep 16, 2022
36f2276
Merge remote-tracking branch 'upstream/main' into The-Legend-of-Zelda-AP
Rosalie-A Sep 17, 2022
33d313e
Zelda 1 Theme
Rosalie-A Sep 17, 2022
24b4288
Readd client build info
Rosalie-A Sep 18, 2022
cabe78a
Corrected erroneus "Blue Candle" instead of "Candle"
Rosalie-A Sep 18, 2022
72ba19e
Added known issue
Rosalie-A Sep 18, 2022
1d09baf
actually putting in connector lua
Rosalie-A Sep 18, 2022
5d0ba96
Logic update
Rosalie-A Sep 18, 2022
9140ba5
don't delete the connector lua without committing next time dummy!
Rosalie-A Sep 18, 2022
4cdf3ad
connector lua lives!
Rosalie-A Sep 18, 2022
3260623
Update Zelda1Client.py
Rosalie-A Sep 18, 2022
71e1640
Create core.dll
Rosalie-A Sep 18, 2022
ae7add5
Cleanup to make linter happy
Rosalie-A Sep 19, 2022
5d5afe8
Still trying to make Linter-senpai happy
Rosalie-A Sep 19, 2022
03743bc
Map and Compass replacements
Rosalie-A Sep 19, 2022
8e84d76
Bug fixes
Rosalie-A Sep 20, 2022
0dc68d9
Boss roar adjustment
Rosalie-A Sep 20, 2022
e5539fe
Clarify spoiler playthrough and shop slots
Rosalie-A Sep 20, 2022
c561253
Update Zelda1Client.py
Rosalie-A Sep 20, 2022
07a0c4d
Merge remote-tracking branch 'upstream/main' into The-Legend-of-Zelda-AP
Rosalie-A Sep 20, 2022
c64006e
Merge branch 'The-Legend-of-Zelda-AP'
Rosalie-A Sep 20, 2022
e869530
Merge remote-tracking branch 'upstream/main'
Rosalie-A Aug 20, 2024
efb7beb
Initial draft
Rosalie-A Aug 23, 2024
fc8483a
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
Rosalie-A Aug 23, 2024
158b303
hey it helps to include everything maybe. will add to .gitignore later
Rosalie-A Aug 24, 2024
5f67fd4
you know running this through pycharm didn't give my any issues
Rosalie-A Aug 24, 2024
b21a19f
cleanup and also you now get a dime for finding a remote item.
Rosalie-A Aug 24, 2024
71ad0c0
temporary solution while I rename all the .bin files
Rosalie-A Aug 24, 2024
67e9aad
updates ahoy!
Rosalie-A Aug 24, 2024
cdf5395
let's go bug fixes!
Rosalie-A Aug 25, 2024
964452c
free cure1s with every ap reward
Rosalie-A Aug 25, 2024
565fb21
APWorld packaging, and other bug fixes.
Rosalie-A Aug 25, 2024
e840e6d
Added Nightmare from Timespinner Z-sprite
wafflesoup Aug 27, 2024
1fbfc7e
Merge pull request #63 from wafflesoup/Final-Fantasy-4-Free-Enterprise
Rosalie-A Aug 27, 2024
293fc1a
Add Murasaki (CaitSith2's OC) Z-sprite
CaitSith2 Aug 27, 2024
8e3df01
Merge pull request #64 from CaitSith2/Final-Fantasy-4-Free-Enterprise
Rosalie-A Aug 28, 2024
889fcef
Add AP logo to z sprites.
CaitSith2 Aug 28, 2024
a20e067
Merge pull request #65 from CaitSith2/Final-Fantasy-4-Free-Enterprise
Rosalie-A Aug 28, 2024
624183d
FF4FE: Add Lance from Pokemon Z-sprite
wafflesoup Aug 29, 2024
2fa8761
FF4FE: Add Bowser in Clowncar from SMW to Z-sprite
wafflesoup Aug 29, 2024
6d875c6
yay updates. Better logic, better features, papa john's
Rosalie-A Aug 29, 2024
93825c4
Added Badeline from Celeste 64 Z-sprite
wafflesoup Aug 29, 2024
c365ee5
Merge pull request #66 from wafflesoup/Final-Fantasy-4-Free-Enterprise
Rosalie-A Aug 30, 2024
a780ae5
More objectives, options, and hopefully not bugs.
Rosalie-A Sep 4, 2024
79bfdfe
Harp songs and a Z-Sprite
CaitSith2 Sep 6, 2024
fa51c30
Merge pull request #67 from CaitSith2/Final-Fantasy-4-Free-Enterprise
Rosalie-A Sep 6, 2024
24fbd32
Finally fixed the MIAB issue, as well as other minor bugs.
Rosalie-A Sep 6, 2024
c20fc51
Merge remote-tracking branch 'upstream/main'
Rosalie-A Sep 6, 2024
db60e5e
Merge branch 'main' into Final-Fantasy-4-Free-Enterprise
Rosalie-A Sep 6, 2024
e6d454a
Merge branch 'main' into Final-Fantasy-4-Free-Enterprise
Rosalie-A Sep 6, 2024
5ddaf96
cleaning up some accidents, hopefully
Rosalie-A Sep 7, 2024
67b50a7
Merge branch 'Final-Fantasy-4-Free-Enterprise' of https://github.com/…
Rosalie-A Sep 7, 2024
c3e4a63
the cleanup continues
Rosalie-A Sep 7, 2024
cecf5ce
Yet more cleanup.
Rosalie-A Sep 7, 2024
1d4fbab
Changes made according to feedback.
Rosalie-A Sep 7, 2024
553962e
Accidental circular import and other fixes.
Rosalie-A Sep 7, 2024
95c3247
MIAB updates
Rosalie-A Sep 18, 2024
c05309d
in progress commit for treasure chests
Rosalie-A Oct 9, 2024
0ddebb2
clean up debug change
Rosalie-A Oct 9, 2024
5edb0f3
load the correct high ID offset
Rosalie-A Oct 9, 2024
5ee5122
Removed remaining vanilla data and music/zsprite data.
Rosalie-A Dec 9, 2024
ab47516
Final changes before PR submission.
Rosalie-A Dec 15, 2024
ffe0089
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
Rosalie-A Dec 15, 2024
7484a9b
Unused code cleanup that nevertheless was popping errors.
Rosalie-A Dec 15, 2024
e878717
More code cleanup.
Rosalie-A Dec 15, 2024
45a08eb
It's always the tiny changes that get you.
Rosalie-A Dec 15, 2024
c5467a3
Pulled some library files from 3.12 in as FE's regular expression han…
Rosalie-A Dec 16, 2024
d12f165
Forgot to pull a line from the .gitignore.
Rosalie-A Dec 16, 2024
45966d3
SHA1 is insecure and so must be excised. Yes, even though it's just f…
Rosalie-A Dec 16, 2024
00f2a89
Minor bugfix changes.
Rosalie-A Dec 17, 2024
0daab6f
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
Rosalie-A Dec 17, 2024
88ffd36
Cleaning up some stray files that I'm not sure how they even ended up…
Rosalie-A Dec 17, 2024
5f8a970
Cleaning up more stray files and duplicate modules no longer needed.
Rosalie-A Dec 17, 2024
2040743
Was using the wrong random, but no longer
Rosalie-A Dec 17, 2024
9cbdbe3
Update inno_setup.iss
Rosalie-A Dec 24, 2024
1a7054a
Updated in accordance with PR review as well as minor bugfixes.
Rosalie-A Dec 30, 2024
87beb08
Merge branch 'Final-Fantasy-4-Free-Enterprise' of https://github.com/…
Rosalie-A Dec 30, 2024
3882da4
Removed Z Sprites I thought I'd already removed.
Rosalie-A Dec 30, 2024
23239c1
More unused file cleanup and minor bugfixes.
Rosalie-A Dec 31, 2024
a3048ce
Upgraded Lark thanks to Wylem, so now we don't need to package it in.
Rosalie-A Dec 31, 2024
99dcbb9
Cleaned up unnecessary pyaes usage so we don't need that anymore. Mov…
Rosalie-A Jan 2, 2025
af02837
Custom junk settings progress
Rosalie-A Jan 4, 2025
7391c10
More custom junk progress
Rosalie-A Jan 5, 2025
d289ddc
Fixing errors introduced by irresponsible copy/pasting.
Rosalie-A Jan 10, 2025
4b2ee56
No idea how I missed adding these in, considering things don't work w…
Rosalie-A Jan 11, 2025
118c6a2
Merge remote-tracking branch 'upstream/main' into Final-Fantasy-4-Fre…
Rosalie-A Feb 10, 2025
55d57da
Moved FE to be external.
Rosalie-A Feb 10, 2025
7f22c07
Separated FE to be a standalone install fetched by requirements.txt.
Rosalie-A Feb 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.idea
.vscode
.lastseed

*_Spoiler.txt
*.bmbp
Expand Down Expand Up @@ -28,9 +29,12 @@
*multisave
*.archipelago
*.apsave
*.BIN
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is bad. There are ROM files currently supported by Archipelago that are *.bin. I would recommend just explicitly inverting the ignore to include whatever file is needed.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The *.BIN ignore still needs to be added back in, even though you've included the necessary files.

*.puml
*.private
*.symbols
*.script

/worlds/ff4fe/FreeEnterpriseForAP/FreeEnt/.build/
setups
build
bundle/components.wxs
Expand Down
1 change: 1 addition & 0 deletions BaseClasses.py
Original file line number Diff line number Diff line change
Expand Up @@ -1226,6 +1226,7 @@ class Item:
code: Optional[int]
"""an item with code None is called an Event, and does not get written to multidata"""
player: int
type: str = 'none'
location: Optional[Location]

def __init__(self, name: str, classification: ItemClassification, code: Optional[int], player: int):
Expand Down
21 changes: 21 additions & 0 deletions SNI/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2021 ALttPO

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
671 changes: 671 additions & 0 deletions SNI/README.md

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions SNI/apps.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# This file defines application shortcuts for the Applications menu.
# To install, copy this file to your configuration directory:
# On MacOS and Linux, this is "$HOME/.sni/"
# On Windows, this is "%LOCALAPPDATA%/sni/"

# `apps` is a list of application shortcuts
apps:

- # `name` is what is displayed in the Applications menu:
name: RetroArch
# `os` specifies that this app is only launchable on this particular operating system
# if `os` is missing/empty, then the Application will appear on all operating systems.
# valid values are:
# "windows" = Windows
# "linux" = Linux
# "darwin" = MacOS
os: darwin
# `path` is the location of the executable to open:
# On MacOS, app bundle folders that end in .app are launched via `open -a <path> <args...>`
# On Windows and Linux, executable files are launched normally
path: /Applications/RetroArch.app

- name: RetroArch
os: windows
path: C:\RetroArch-Win64\RetroArch.exe

- name: OpenTracker
os: darwin
# `dir` is the current directory that the executable is launched from:
dir: $HOME/Developer/me/alttpo/OpenTracker/OpenTracker/bin/Debug/net5.0
# `path` does not have to be an absolute path, and could be found in the system lookup $PATH
path: dotnet
# `args` is the list of arguments passed to the application:
args:
- OpenTracker.dll

- name: SNI Home Page
# `url` will open the given URL when clicked in the menu:
# On MacOS, URLs are launched via `open <url>`
# On Windows, URLs are launched via `start <url>`
# On Linux, URLs are launched via `xdg-open <url>`
url: https://github.com/alttpo/sni
179 changes: 179 additions & 0 deletions SNI/lua/x64/Connector.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
-- original file found in a GPLv3 code repository, unclear if this is the intended license nor who the authors are
-- SNI modifications by Berserker, jsd1982; modifications licensed under MIT License
-- version 3 changes Read response from JSON to HEX

if not event then
is_snes9x = true
memory.usememorydomain = function()
-- snes9x always uses "System Bus" domain, which cannot be switched
end
memory.read_u8 = memory.readbyte
memory.read_s8 = memory.readbytesigned
memory.read_u16_le = memory.readword
memory.read_s16_le = memory.readwordsigned
memory.read_u32_le = memory.readdword
memory.read_s32_le = memory.readdwordsigned
memory.read_u16_be = function(addr) return bit.rshift(bit.bswap(memory.read_u16_le(addr)),16) end
else
if emu.getsystemid() ~= "SNES" then
print("Connector only for BSNES Core within Bizhawk, sorry.")
end
end


function readbyterange(addr, length, domain)
local mtable;
local mstart = 0;
local mend = length - 1;
if is_snes9x then
mtable = memory.readbyterange(addr, length);
mstart = 1
mend = length
else
-- jsd: wrap around address by domain size:
local domainsize = memory.getmemorydomainsize(domain)
while addr >= domainsize do
addr = addr - domainsize
end
mtable = memory.readbyterange(addr, length, domain)
mstart = 0;
mend = length - 1;
end

-- jsd: format output in 2-char hex per byte:
local toret = {};
for i=mstart, mend do
table.insert(toret, string.format("%02x", mtable[i]))
end
return toret
end
function writebyte(addr, value, domain)
if is_snes9x then
memory.writebyte(addr, value)
else
-- jsd: wrap around address by domain size:
local domainsize = memory.getmemorydomainsize(domain)
while addr >= domainsize do
addr = addr - domainsize
end
memory.writebyte(addr, value, domain)
end
end

local socket = require("socket.core")

local connection
local host = '127.0.0.1'
local port = 65398
local connected = false
local stopped = false
local name = "Unnamed"

memory.usememorydomain("System Bus")

local function onMessage(s)
local parts = {}
for part in string.gmatch(s, '([^|]+)') do
parts[#parts + 1] = part
end
if parts[1] == "Read" then
local adr = tonumber(parts[2])
local length = tonumber(parts[3])
local domain
if is_snes9x ~= true then
domain = parts[4]
end
local byteRange = readbyterange(adr, length, domain)
connection:send(table.concat(byteRange) .. "\n")
elseif parts[1] == "Write" then
local adr = tonumber(parts[2])
local domain
local offset = 2
if is_snes9x ~= true then
domain = parts[3]
offset = 3
end
for k, v in pairs(parts) do
if k > offset then
writebyte(adr + k - offset - 1, tonumber(v), domain)
end
end
elseif parts[1] == "SetName" then
name = parts[2]
print("My name is " .. name .. "!")
elseif parts[1] == "Message" then
print(parts[2])
elseif parts[1] == "Exit" then
print("Lua script stopped, to restart the script press \"Restart\"")
stopped = true
elseif parts[1] == "Version" then
if is_snes9x then
connection:send("Version|SNI Connector|3|Snes9x\n")
else
connection:send("Version|SNI Connector|3|Bizhawk\n")
end
elseif is_snes9x ~= true then
if parts[1] == "Reset" then
print("Rebooting core...")
client.reboot_core()
elseif parts[1] == "Pause" then
print("Pausing...")
client.pause()
elseif parts[1] == "Unpause" then
print("Unpausing...")
client.unpause()
elseif parts[1] == "PauseToggle" then
print("Toggling pause...")
client.togglepause()
end
end
end


local main = function()
if stopped then
return nil
end

if not connected then
print('Connecting to SNI at ' .. host .. ':' .. port)
connection, err = socket:tcp()
if err ~= nil then
emu.print(err)
return
end

local returnCode, errorMessage = connection:connect(host, port)
if (returnCode == nil) then
print("Error while connecting: " .. errorMessage)
stopped = true
connected = false
print("Please press \"Restart\" to try to reconnect to SNI, make sure it's running.")
return
end

connection:settimeout(0)
connected = true
print('Connected to SNI')
return
end
local s, status = connection:receive('*l')
if s then
onMessage(s)
end
if status == 'closed' then
print('Connection to SNI is closed')
connection:close()
connected = false
return
end
end

if is_snes9x then
emu.registerbefore(main)
else
while true do
main()
emu.frameadvance()
end
end
20 changes: 20 additions & 0 deletions SNI/lua/x64/luasocket.LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
LuaSocket 3.0 license
Copyright � 2004-2013 Diego Nehab

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
Loading
Loading