Git Product home page Git Product logo

1j01 / 98 Goto Github PK

View Code? Open in Web Editor NEW
1.0K 25.0 174.0 64.89 MB

πŸ’Ώ Web-based Windows 98 desktop recreation β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–“β–ˆβ–“β–“β–’β–“β–’β–’β–‘β–’β–‘β–‘β–‘πŸ—•οΈŽπŸ——οΈŽπŸ—™οΈŽ

Home Page: https://98.js.org

JavaScript 92.96% CSS 1.70% HTML 1.81% AutoHotkey 0.03% Batchfile 0.01% CMake 0.01% C++ 3.20% C 0.16% Shell 0.13%
retro classic remake windows windows-98 windows-95 desktop javascript html operating-system

98's People

Contributors

1j01 avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

98's Issues

Sound Recorder: disabled buttons render wrong in Firefox (until theme change)

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.

The tools in JS Paint are noticeably lagging, and I can't draw because of that. :(

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.

Structure for new program with params?

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");

Notepad and JSPaint is blank when opening files

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?

Screen Shot 2022-02-27 at 7 24 47 PM

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)

Absolute file paths don't work with file:// protocol

Hello, I am saying this assuming people are going to download this and run it from the file:// and not from a web server.

  1. <link href="classic.css" rel="stylesheet" type="text/css">
  2. <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=LbWArJzeO7">
  3. <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=LbWArJzeO7">
  4. <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=LbWArJzeO7">
    I am using these 4 lines as examples. There are many more places where I see this.

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.

BrowserFS fails to initialize (Firefox)

BrowserFS fails to initialize when opening https://98.js.org/ in Firefox.

Capture

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

Any way to contact you/contribute to this directly?

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!

Ugly borders in Winamp because of conflicting .window class

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

Is there a way to trigger launch of programs other than clicking on desktop icons?

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>

own idea

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

Saving not working in Sound Recorder

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?)

Should Sound Recorder get its own repo?

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?

  • sndrec32.js
  • sound-recorder
  • sound-recorder-js

[SUGGESTION] browsing the internet

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

Inactive window of Paint in https://98.js.org

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 made an unofficial "upgraded" version of 98.js, feel free to add the new stuff to the main site!

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.

3D Maze Screensaver:
3d maze

Win95 Media Player::
image

While it works as intended, there is still an issue with a double GUI.
image

These programs and their files are also added into the C: drive!
image

I also added couple of more websites to the Network Neighborhood:
image

Lastly, I fixed Minesweeper and made it so the correct faces would be displayed when you win or lose:
image

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/)

Available for commercial use?

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

Failed to get WebGL context; refreshing and restarting not working

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 :(
Screen Shot 2023-01-23 at 6 15 31 AM

"The filesystem is not working"

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?

Easter Egg not triggering (spoiler)

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)
  • BrowserFS fails to initialize in Firefox, which might have an impact on script loading?

help I deleted a bunch of stuff

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)

Add Rezize Window

This is Explorer, Notepad, JSpaint, Internet Explorer, etc.. no Resize Window
image

image
This right bottom Window No have Resize?

Look in right bottom in Notepad
image
show resize lines

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.