jtothebell / fake-08 Goto Github PK
View Code? Open in Web Editor NEWA Pico-8 player/emulator for console homebrew
License: Other
A Pico-8 player/emulator for console homebrew
License: Other
Games such as Polar Panic (https://www.lexaloffle.com/bbs/?pid=70606#p), High Stakes (https://www.lexaloffle.com/bbs/?pid=83548#p) use the secondary palette and look very weird without that palette.
So I keep getting errors for carts that genuinely work with pico-8, so I'm going to list the errors off from the log, and also add the carts.
Carts:
https://drive.google.com/drive/folders/1TQU9NKIOhswd8n70f1HKT-70EbrC0jIZ?usp=sharing
SkiFree
Setting cart audio rom data from strings
ERROR loading cart
Error: [string "s="--"d=1x=64o={}j=add...']:10; unexpected symbol near '?'
Mini Golf
Setting cart audio rom data from strings
ERROR loading cart
Error: [string "q=circfill r=rnd b=btn f=0p=pal..."]:2: expected nar '<\146>'
Automata
Setting cart audio rom data from strings
ERROR loading card
Error: [string "-- 1-d cellular automata demo..."]:20: unexpected symbol near '<\151>'
And those are the 3 files I have troubles with.
Doing srand() without providing a seed throws an error in fake-08 despite working fine in PICO-8. Can be worked around by giving srand a seed of 0 as in srand(0). Both probably do the same thing in PICO-8, but it is still incorrect behavior for srand() to not work. Can probably be fixed by making the seed an optional argument that defaults to zero when no argument is provided.
music(-1) is incorrectly interpreted as music(0) by fake-08. music(-1) is supposed to terminate any music that this currently playing.
Finally, and I know this is a 0.2 feature but I will mention it anyway, rnd() throws an error when given a table. Can be worked around using the trick that was used to get random choices from tables prior to 0.2.
Issues encountered in: Iceberg Curse
Version: 3DS CIA build v0.0.2
As I was trying to debug with other carts I couldn't find the exact why first 2 issues happen as other carts work fine (Pico De Pon as example) but blue color (12) is displayed as black instead as well as some shapes not being drawn in that particular cart. map() not displaying when not all arguments provided seems to be consistent though?
(Sorry for throwing several issues in one but i was too lazy to post each one separately)
from u/nowhere_man87 on reddit
I wanted to know if you could incorporate two more resolutions, one in 4:3 aspect, to take better advantage of the PSVita screen, but without distorting the proportions of the game as much as the full screen 16: 9 mode does.
Also another in vertical 4: 5 or 2: 3, with the image rotated to the left, therefore in TATE mode, so that the games can be controlled with the right stick and played with the square and triangle, it would made the Vita a Game Boy on steroids. This portrait mode would allow for the largest image size with little deformation (or none if 1:1).
Sorry if there was a comment section I could not find but I just wanted to thank you for makeing this
As I Really Love Pico-8 can't wait to give this ago if/when my 3ds gets here my old one got stolen 2 years ago with my 2 favourite games at the time :( anyway I was wondering if U have any plans to
Change the icon? Also some screenshots s whod be cool :) I'd love to see
Pico driller running on this!
I have CFW on my 3DS, so i prefer .cia to .3dsx as a file format
u/nowhere_man87 on reddit pointed out that select would get bumped less often than R, and would probably be a better default button for changing the aspect ratio.
Need both to be able to load a cart, exit and then load a different cart.
Allow user to customize cart directory
Persist changes to the screen stretch
allow customization of button layout
load
and reload
with a cart file name are not yet supported. These are needed for multi cart games
affects multiple carts: Sonic, soulbound. Example cart text:
function brd(f)
apal(0)
camera(-1,0) f()
camera(1,0) f()
camera(0,-1) f()
camera(0,1) f()
pal()
camera() f()
end
function apal(n)
for i=0,15 do pal(i,n) end
end
function _draw()
cls(10)
local s="press ❎ to start"
function f()
print(s,64-2*#s,88,15)
end
brd(f)
end
Request from u/nowhere_man87 on reddit:
I wanted to know if you could incorporate two more resolutions, one in 4:3 aspect, to take better advantage of the PSVita screen, but without distorting the proportions of the game as much as the full screen 16: 9 mode does.
Should be relatively easy to add a new stretch mode
Title (vracing_title.p8) + menu (vracing_main.p8) work fine, but levels show this error.
It seems that the game cannot find the levels. All files are inside the p8carts, of course.
Switch, Wii U, and Vita host classes have a lot of code duplication. Should probably use an intermediate subclass to share code between the three of them where it makes sense.
Just a suggestion to add a card preview like the one in splore
with Pico 8 v0.2.2 zep added support for fillp when drawing sprites.
I believe that fake-08 would be much easier to use if there was a keyboard on the bottom touchscreen while the console is open. i also had some issues loading X-ZERO (attached here)
i would launch the cart, it would show the title screen, and when i would press O to play, it crashes fake-08 and goes into the HOME menu :/
Noticed this on Run Gun Bot and PICORACER2048. Not really sure what causes the issues on the latter though.
It would be great if you added a QR code for the cia download.
Add mouse emulation, hopefully via touchscreen (move rendering to bottom screen of 3ds) for games such as Desert Lead (https://www.lexaloffle.com/bbs/?pid=43451#p)
poke
ing a value to memory location 0x5f2c should allow you to change rendering modes. See https://pico-8.fandom.com/wiki/Memory
Cartdata can be stored and retrieved with dget
and dset
but it does not currently persist. This means nothing is saved between runs of a cart.
Some pico-8 carts, when loaded, do not boot and instead display on the console "eRROR LOADING CART LUA"
The games I have had trouble with are:
If you press the R button to toggle between scales on Wii U, FAKE-08 seems to get stuck in a "toggling scales" state, so that every single frame after that, the scaling changes, making it unusable and probably a health hazard for anybody with photosensitive epilepsy. The issue is only resolved by completely exiting and restarting the app.
Separately from the actual bug, if the scaling worked it could probably be somewhat better, given the multi-screen, multi-resolution setup of the Wii U. I'm not sure what the exact limitations of working with the Wii U SDL2 port are, but my understanding is that it only supports 720p. The real ideal would be not dealing with that limitation at all, so that you could have native resolution output at all resolutions, but that falls beyond the scope of a FAKE-08 issue.
That said, I wonder if it could be handled better within those limitations? Currently, the 720p output of FAKE-08 is being scaled with nearest-neighbor (no interpolation) to the output resolution: 480p on the GamePad, and any of 480p, 720p and 1080p on the TV. This is resulting in uneven pixel shapes on the GamePad and on TV for any users set to 480p or 1080p; only 720p on TV really looks correct. If it's possible with SDL2 on Wii U, the final scale for output should be performed with bilinear filtering, preserving the correct pixel shapes on both TV and GamePad regardless of resolution, in exchange for some mild blurring at pixel edges.
tline()
Oval drawing
New operators
rnd() table argument
More?
In PICO-8, btn() and btnp() functions can accept emojis(such as ⬅️ and ➡️) (NOT STRING) as argument for what input to read. However, in FAKE-08, these presented in arguments return "unexpected symbol" error and do not allow running the cart.
cart+log.zip
(Tested on New 3DS XL via CIA prebuild in release)
Possible solution: make gamepad emojis into global variables like here
This is the feature that allows displaying 32 colors at once. It can be accessed via peeks/pokes, or with pal(c0, c1, 2). Described here: https://www.lexaloffle.com/bbs/?tid=38565, and in video form here: https://www.youtube.com/watch?v=osk7P4ljWOU
Sound on the Wii U is currently turned off because it sounds mixed up. The sounds sound like the right pitches, but out of order. Since Wii U is an SDL 2 platform, my first suspicion is that it is a problem with the Wii U being Big Endian, but I've been focusing on other issues and haven't dug too deep.
The pause menu is drawn in the normal framebuffer, so when using different draw modes (flipped, 64x64, etc) it doesn't get drawn correctly. The pause menu should be drawn independent of the regular frame buffer to fix this issue.
This is what we do in the TIC-80 port.
I use the GPU (which is not very busy, admittedly) to scale the 240x136 TIC-80 display to 720x408 (3x integer), then scale that down as necessary. This improves the sharpness of the resulting non-integer scaled output.
This helped sharpness in our case; I am not sure how much it will help with FAKE-08.
From u/bruno84000 on Reddit
Dank Tomb has a green square permanently around the protagonist.
Can you create a loader for adding custom bubbles to the live area? Retroarch and DaedalusX64 both have this, and this would make it easier to create bubbles for specific games instead of having to sort thru the list.
From u/Snowbro88 on Reddit
HI have come to report a problem with games that support 2 players such as Mistigri or Amazeball Dudes, when I play in single player mode, when you press X (button to attack) automatically the second player enters into action and in fact the two characters both are controlled in a rare way with the same control
Edit: This bug also messes up the controls on X-Wing Vs Tie Fighter
Wondering if it is possible to have some method of browsing games aside from linearly searching through them with left and right.
This one is more niche but much easier to implement: an option to launch a random cart.
Hi. I'm testing a bunch of carts on PS Vita Pico-8 version, most of them works very well but there are some bugs yet.
Tested with v0.0.2.4 . Created an account in here just to report these issues for you. Amazing work by the way.
3D Racing Game WIP.p8 | work in progress (https://www.lexaloffle.com/bbs/?pid=16351#p)
SlipWays.p8 | (https://www.lexaloffle.com/bbs/?pid=50626#p)
Chimeras Garden.p8 | work in progress (https://www.lexaloffle.com/bbs/?tid=27877)
Desert Lead 3D.p8 | (https://www.lexaloffle.com/bbs/?pid=43451)
Issue: buttons does't work
Explorers.p8 | (https://www.lexaloffle.com/bbs/?pid=82024#p)
issue: black screen
Hydra.p8 | (https://www.lexaloffle.com/bbs/?pid=19600#p)
issue: split screen in half and slow speed
Jack of Spades.p8 | (https://www.lexaloffle.com/bbs/?pid=65294#p)
issue: screen frozen
Katamari Christmassy.p8 | (https://www.lexaloffle.com/bbs/?pid=71186#p)
issue: messy controllers
PICO ARCADE.p8 | (https://www.lexaloffle.com/bbs/?pid=72470#p)
issue: unable to launch games with "X"
PICOWARE.p8 | (https://www.lexaloffle.com/bbs/?pid=65884#p)
issue: black screen after dialogue with mom
Pinballvania!.p8 | (https://www.lexaloffle.com/bbs/?pid=63353#p)
issue: controllers, pressing up to continue doesn't work
Soulbound.p8 | (https://www.lexaloffle.com/bbs/?pid=82570#p)
issue: difficulty to read dialogues
Storming The Grandmothership.p8 | (https://www.lexaloffle.com/bbs/?pid=89237#p)
issue: buggy intro animation, crashes after pressing Z+X to start
Sugar Rush.p8 | (https://www.lexaloffle.com/bbs/?pid=88978#p)
issue: after the counter in the beginning of the game, it appears "not so much" every time
Super Contra Hot.p8 | (https://www.lexaloffle.com/bbs/?pid=69629#p)
issue: buggy screen
Super Pico Runner Brothers.p8 | (https://www.lexaloffle.com/bbs/?pid=30095#p)
issue: black screen
Tomato Worm.p8 | (https://www.lexaloffle.com/bbs/?pid=55292#p)
issue: playable but buggy screen, shows weird screens during gameplay
Across The River.p8 | (https://www.lexaloffle.com/bbs/?pid=10832#p)
Crowded Dungeon Crawler.p8 | (https://www.lexaloffle.com/bbs/?pid=82720#p)
Delia Mute in Grave Grotto.p8 | (https://www.lexaloffle.com/bbs/?pid=11873#p)
Demon Castle.p8 | (https://www.lexaloffle.com/bbs/?pid=66004#p)
Gifts on Venus.p8 | (https://www.lexaloffle.com/bbs/?pid=60313#p)
GRiPPY.p8 | (https://www.lexaloffle.com/bbs/?pid=86852#p)
Impossible Mission R.T..p8 | (https://www.lexaloffle.com/bbs/?pid=88937#p)
Lemmtris.p8 | (https://www.lexaloffle.com/bbs/?pid=11644#p)
Masters of the Universe.p8 | (https://www.lexaloffle.com/bbs/?pid=81037#p)
PicoKart.p8 | (https://www.lexaloffle.com/bbs/?pid=17739#p)
Picopolis.p8 | (https://www.lexaloffle.com/bbs/?pid=42185#p)
Ramps.p8 | (https://www.lexaloffle.com/bbs/?pid=77443#p)
Scrap Boy.p8 | (https://www.lexaloffle.com/bbs/?pid=82518#p)
The Chamber Scrolls.p8 | (https://www.lexaloffle.com/bbs/?pid=33420#p)
The Stroll.p8 | (https://www.lexaloffle.com/bbs/?pid=15316#p)
Tower Noire.p8 | (https://www.lexaloffle.com/bbs/?pid=11028#p)
Willo.p8 | (https://www.lexaloffle.com/bbs/?pid=83251#p)
Hey it's m Agen got a chance to mess around with fake-8 game compatibility has improved wonderfully I was wondering if you have any plans to add a front end of say a IMG of the cartridge and some details to make IT easer to diside on what to play sorry about the mobile typing :)
Certain Single Player games, like Celeste X require inputs from two controllers to properly play the game.
flip() is used to send pico 8's internal screen buffer to the host's framebuffer outside of the main update/draw loop. It is not currently implemented
While browsing your repo, I noticed the picolove link was broken due to a typo.
Have submitted a PR that will fix that: #15
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.