1j01 / 98 Goto Github PK
View Code? Open in Web Editor NEWπΏ Web-based Windows 98 desktop recreation ββββββββββββββββββποΈποΈποΈ
Home Page: https://98.js.org
πΏ Web-based Windows 98 desktop recreation ββββββββββββββββββποΈποΈποΈ
Home Page: https://98.js.org
I felt like there were some things missing in "98.js" but I know this repository is mostly defunct in it's contributions, (hence why I did not make a pull request) so I decided to add/fix a couple of things myself. Isaiah, if you need me to remove them, I will be willing to.
While it works as intended, there is still an issue with a double GUI.
These programs and their files are also added into the C: drive!
I also added couple of more websites to the Network Neighborhood:
Lastly, I fixed Minesweeper and made it so the correct faces would be displayed when you win or lose:
Unfortunately, and I believe this is due to hosting issues, all notepad files became blank during the hosting process. It works fine when displayed on Git Bash, but not when the site is on github pages. This is the only known issue, however.
I would love if these get added into the main repository, because it would not have the issue with notepad. Hopefully, now that I've made it, it could make the process of adding/fixing everything easier!
Anyways, check it out at:
(https://98plus.js.org/)
Hi!
I am absolutely amazed by this project and all the work that has gone into it. Well done! I love it!
I wanted to ask, can you also add JS kidpix to the app?
I do not own the project but the app is here (https://kidpix.app/) and the codebase/owner is here (https://github.com/vikrum/kidpix)
Thanks so much!
I have a question about your recommendation for coding style if I want to create a new application for your windows 98 program.
I want to create a notepad function like this:
new $DesktopIcon("Notepad", ("notepad"), NotepadFile, "shortcut");
Lets say the third param NotepadFile is a function like this:
function NotepadFile(file, title){
var $win = new $IframeWindow("notepad/index.html?file="+file, "Notepad");
$win.title(title);
return new Task($win);
}
How can I re-write the $DesktopIcon structure to keep your coding style but allow programs to have params passed in like this:
new $DesktopIcon("Notepad", ("notepad"), NotepadFile("fileName", "title"), "shortcut");
Pretty sure this is a regression.
When selecting an icon on the desktop or in Explorer, and pressing Enter, it should open the app or file, but nothing is happening.
using pencil tool to draw something, on a new image on jspaint.app the white background disappears and becomes black dots/ like invisible, see video: https://youtu.be/ssVwDWdsWhc
on Chrome latest version :
Version 120.0.6099.216 (Official Build) (64-bit)
OS Ubuntu 22.04.3 LTS
Hardware Acer Aspire E5-573G
Gimp works fine. other websites like google docs work fine
The Easter Egg which is triggered by addEventListener("keydown", Konami.code(toggle3D));
in 3d-fun.js
doesn't seem to trigger when the appropriate combination of keys is entered. (Up, Up, Down, Down, Left, Right, Left, Right, B, A)
Tried to trigger the Easter Egg in Firefox Developer Edition (v76.0b3) and Google Chrome (v80.0.3987.163) but was unsuccessful.
My guess is that some file isn't being loaded / loaded properly, causing the easter egg trigger to not load.
Other notes:
if (event.keyCode === 66 || event.keyCode === 65) {event.preventDefault();}
seems to work fine for Firefox (sign that konami.js is being loaded correctly, therefore that the key sequence is loaded)"Annotated" screenshot from a VM:
Notepad does the cascading behavior, and Windows Explorer, but Paint doesn't - so it's up to the program in some way
Hey yall,
I came across this website on reddit: https://skids.io/ which was built on top of 98.js.
This got me wondering, since you don't have any license specified: Is this allowed?
Thank you for your time!
I really like this project and just wanted to make sure. (maybe also for myself in the future)
Best regards,
Louis
In the Windows Explorer app, single-clicking isn't working to select a file or folder.
The error in Firefox is:
Uncaught TypeError: item_el_to_select is undefined
select_item http://127.0.0.1:1998/src/FolderView.js:719
setTimeout handler*select_item http://127.0.0.1:1998/src/FolderView.js:718
FolderView http://127.0.0.1:1998/src/FolderView.js:464
(jQuery x7...)
FolderView http://127.0.0.1:1998/src/FolderView.js:461
FolderView http://127.0.0.1:1998/src/FolderView.js:542
go_to http://127.0.0.1:1998/programs/explorer/explorer.js:228
async* http://127.0.0.1:1998/programs/explorer/explorer.js:1001
setTimeout handler* http://127.0.0.1:1998/programs/explorer/explorer.js:999
(jQuery x8...)
This may be a recent regression
Iβve been super in love with this project for the past couple of months and even put an issue a couple of weeks ago suggesting enhancements due to a bunch of source codes. I know you havenβt worked on the project in 2 years and Iβve been trying to email you as well. Is there any way I could contact you directly? (Twitter/Discord/Reddit, etc)
I would love to help continue and contribute this project because I know you do have a lot of other projects going on. I hope you can see this, Isaiah!
It shouldn't be hard, I've already extracted the icons (from screenshots):
See: 1j01/jspaint#83
Hello, I am saying this assuming people are going to download this and run it from the file:// and not from a web server.
<link href="classic.css" rel="stylesheet" type="text/css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=LbWArJzeO7">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=LbWArJzeO7">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=LbWArJzeO7">
I am going to point out the links it is going to. (after href="path here"
)
Lets assume that this is running from linux in this directory. /home/user/98-master
Lets take line 4 first.
href="/favicon-16x16.png?v=LbWArJzeO7"
Putting the /
at the beginning will indicate that it is an absolute file path so the web browser will try to find the file favicon-16x16.png
in the /
directory (and its not). The same things happen in example 2 and 3.
Lets take example 1
href="classic.css"
This is correct, leaving out the /
tells the web browser that it is a relative directory and it would try to find a file in the same directory as the index.html
file. /home/user/98-master/classic.css
Is where it would look for this file. So this is correct.
Esc should close dialogs (and screensavers) but not regular application windows like Paint, Sound Recorder, Explorer, or Minesweeper.
Window of Paint remain inactive (marked grey) during draging, drawing and clicking on board.
BTW: The same problem is with: Minesweeper and Solitaire
Browser: Incognito and normal mode in Firefox 111.0.1
I'm getting an npm error when I do npm start
make_http_index | json > filesystem-index.json sh: make_http_index: command not found
Is this an NPM error?
BrowserFS fails to initialize when opening https://98.js.org/ in Firefox.
It doesn't seem like it's affected by different Firefox versions.
Console Error:
uncaught exception: Error: EACCES: Permission denied. (filesystem-setup.js:46:3)
<anonymous> filesystem-setup.js:46
configure browserfs.ts:90
getFileSystem browserfs.ts:162
store IndexedDB.ts:247
onErrorHandler IndexedDB.ts:42
(Async: EventHandlerNonNull)
IndexedDBStore IndexedDB.ts:154
IndexedDBFileSystem IndexedDB.ts:245
Create IndexedDB.ts:219
wrappedCb backends.ts:31
checkOptions util.ts:252
Create backends.ts:35
finish browserfs.ts:141
getFileSystem browserfs.ts:175
getFileSystem browserfs.ts:155
forEach self-hosted:225
getFileSystem browserfs.ts:151
configure browserfs.ts:85
<anonymous> filesystem-setup.js:16
See http://www.cristianleandri.com/98-master/
Desktop errors and CREDITS.TXT, altertitle.txt folders my pictures and my documents don't work (failed to read), please help me to correct this.
I love 98!
Cristian.
Get an error when running on my computer saying The filesystem is not available, it failed to initalize.
I forked this project and use a subdomain. Whenever I try to use the notepad app it will as open a blank file. I included a screenshot of CREDITS.txt
. I noticed that it gave out this error in the console. Any ideas to fix this?
Uncaught Error: Invalid buffer: Buffer is 582 long, yet Stats object specifies that file is 277 long. preload_file.ts
at OverlayFile.PreloadFile [as constructor] (preload_file.ts:57:13)
at new OverlayFile (OverlayFS.ts:35:10)
at OverlayFS.ts:421:27
at XmlHttpRequest.ts:373:18
at NoSyncFile.close (preload_file.ts:404:5)
at cb (XmlHttpRequest.ts:369:13)
at XmlHttpRequest.ts:379:9
at XmlHttpRequest.ts:290:20
at XMLHttpRequest.req.onreadystatechange (xhr.ts:44:20)
a couple weeks ago i made this
Hoodgail/OS
wat do u think of making ur own OS emulator and not based on on a previous OS ?
with a LOT of features... but u might not have the time
On Desktop (from screenshot):
source: drudge.com
On Icon (from screenshot):
source: geocities.ws
Someone has already used WebGL to reimplement the 3d maze screensaver which is included in Windows 98.
The screensaver can be found at
https://github.com/ibid-11962/Windows-95-3D-Maze-Screensaver
I think it is a good idea to add it to the project.
When you complete a game of minesweeper, the smiley should wear sunglasses.
Add a mention of that to the readme, because this is sort of a collection of related projects.
btw there's Word in here:
As the title states, whenever I use the tools in JS Paint, it lags behind my mouse.
Because of this, the lines I draw aren't as smooth as I'd like them to be.
Also, it doesn't matter what tool I use, they all end up lagging behind my mouse. (Believe me, I've checked.)
And it wasn't always like this, the lagging problem only became a thing around the start of August. (Before anyone asks, I waited until now to post about it because I thought it was a glitch that'll be fixed in a few days.)
Isaiah, I do hope you read through the "issues" section, because I really do like this program, and I don't want to stop using it because of an easily fixable error.
I'll be expecting that my posting about this should get the ball rolling to this issue being fixed.
Much love,
Fuksake.
I LOVE this project, and want to actually do classwork using it, but I wish you could go to websites other than the preset archive.org sites. It would break the emersion, but a toggelable browser setting in the browser window to allow the browser to work with other sites would be amazing.
it could be very easily done with a toggle menu, which if enabled, disables line 286 of explorer.js
In the Explorer app, while viewing a folder, toggling View > as Web Page is causing an error in Firefox:
Uncaught TypeError: container_node is null
handle_focus_in_out http://127.0.0.1:1998/lib/os-gui/$Window.js:492
empty jQuery
render_folder_template http://127.0.0.1:1998/programs/explorer/explorer.js:865
onConfigure http://127.0.0.1:1998/programs/explorer/explorer.js:239
configure http://127.0.0.1:1998/src/FolderView.js:170
toggle http://127.0.0.1:1998/programs/explorer/menus.js:11
item_action http://127.0.0.1:1998/lib/os-gui/MenuBar.js:883
add_menu_item http://127.0.0.1:1998/lib/os-gui/MenuBar.js:915
add_menu_item http://127.0.0.1:1998/lib/os-gui/MenuBar.js:909
add_menu_item http://127.0.0.1:1998/lib/os-gui/MenuBar.js:896
MenuPopup http://127.0.0.1:1998/lib/os-gui/MenuBar.js:948
make_menu_button http://127.0.0.1:1998/lib/os-gui/MenuBar.js:964
MenuBar http://127.0.0.1:1998/lib/os-gui/MenuBar.js:1084
<anonymous> http://127.0.0.1:1998/programs/explorer/menus.js:588
logical_container_el.contentDocument
is null
here as the iframe is unloaded when toggling the folder template ("Web Page"):
Lines 485 to 492 in 7357f92
There's no error message or anything, it just makes the playback audio stop (and subsequently go into stereo where it's previously mono for some reason?)
Maybe I should look up what the Windows API flags for window types are, see what to call a basic window
As a workaround tho I can unset the styles
I think it's also causing a weird layout behavior where the windows overlap a bit by default but snap differently
I started working on a start menu for the desktop with the intent of submitting a PR once it's complete. I have the look and functionality locked down except I can't figure out a way to launch programs by clicking on their respective menu item. I'm new to javascript so forgive me if it's an obvious answer.
I know that the functions for launching the program windows is in programs.js, so I'm assuming it's possible to create an onclick event that would trigger said functions? I tried tinkering around with it but I couldn't figure out how to make it happen. Any pointers?
programs.js: function Minesweeper(){ var $win = new $IframeWindow({ src: "programs/minesweeper/index.html", icon: "minesweeper", title: "Minesweeper", innerWidth: 280, innerHeight: 320 }); return new Task($win); }
index.html: <div class="start-menu-item" onclick="[insert calling of function Minesweeper here?]">Minesweeper</div>
I was fudungling the thingy and I didnt think it would save but it did and now its fudungled how to I reset it
(im on online version btw)
Error when running on linux, The filesystem is not available. It failed to initialize.
It gets navigator.getUserMedia is not a function
The newer API, navigator.mediaDevices.getUserMedia
is available
Should Sound Recorder have its own repo? And if so, should Notepad? Should there be an organization? Should it have 98 in the name, or be more open for expansion?
What would it be called?
When resizing the Paint window, the color palette is reflowing, ending up on a single row if you give it enough room.
It should stay as two rows in a fixed arrangement.
This does not happen on https://jspaint.app/
I don't really understand what's going on because it was just fine
Whenever I try to try to do anything, it keeps giving me the same message: "Failed to get WebGL context. You may need to refresh the web page, or restart your computer." Painting, Pencil, and all other shapes (except rectangles) do not work at all
I have done both refreshing and restarting, but nothing seems to work.
I am on a MacBook Pro and use Google Chrome: fully updated
it works fine on safari, but I regularly use Google Chrome and it's where all my artwork is stored
please help :(
We have all of the source codes for these projects. We should add them to this project. If you need help, I am willing to.
Win95 Media Player:
https://benwiley4000.github.io/win95-media-player/
Windows Classic Theme Designer:
https://github.com/tpenguinltg/winclassic
3D Screen Saver:
https://ibid-11962.github.io/Windows-95-3D-Maze-Screensaver/maze.html
The disabled button icons are rendered with just black, which is the canvas context's default color so it's probably getting undefined for the colors.
It happens when opening Sound Recorder initially, even with a custom theme already selected.
When switching themes while Sound Recorder is open, it renders correctly.
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.