r/windows98

Image 1 — Minecraft In Its Entirety In Windows 95/98 Machines
Image 2 — Minecraft In Its Entirety In Windows 95/98 Machines
Image 3 — Minecraft In Its Entirety In Windows 95/98 Machines
▲ 58 r/windows98+2 crossposts

Minecraft In Its Entirety In Windows 95/98 Machines

This program is basically an beta recreation Beta 1.7.3 entirely developed in C89 Open Watcom V2.0 C code and uses only Open GL 1.1 Rendering. Newer versions of the program are even a hybrid between Beta 1.7.3/Release 1.2. This program was intended to run on Windows 95/98 machines, but it can also even run on newer windows. Documentation is included

Almost every implementations from the version was converted and implemented into C including world behavior. gameplay, visual style, GUIS, redstone/piston systems, "entities", and even able to load, render, and save actual Java worlds properly. The newer version supports enchanting, potions, newer blocks/items, and more. The custom rendering system, extensive frustum culling, lazy chunk updates, and more were key to achieving good performance and reaching hundreds of FPS in systems even in high render distances.

This program is intended to run on Windows 95/98 machines specifically, but can also run on modern windows and could be ported to other systems, it uses mcp43 for java files as reference and core boilerplates development as key with some conversion tools used, however much of the custom code implemented or even added and gl 1.1 rendering is described below.

When I first initially started this project, I used a tool to change the extensions of the java files from .java to .c while also deleting its main data along and also developed proper h files and unity manifests. However for some reason, it also left a bunch of junk metadata which I used as a bar to figure out the most importance of what implementations and code were needed to be added first to look and run like the real deal over time. Many of the files have just seemingly metadata, but many of them still have functional code and updated to run like the real deal. Files that were fully implemented and basically converted were called Direct C89 port of a java file. The entire program uses clean implementations and reverse engineering to prevent some level of copyright issues.

One of the key things actually developed, was the custom chunk rendering system and performance systems to make sure it looks and runs like the real deal. Extensive hidden face culling was implemented which hided faces of blocks not visible to the player. Another key thing developed was when the chunk geometry and its objects are compiled into Open Gl 1.1 lists, the CPU, instead of sending calls for every single vertices per frame which used to be really bad during development, but now only send a few calls to be processed, meaning the program uses its completed lists to render unless changes like block placing/breaking, lighting change, neighbor chunk changes, and more happens. The worlds uses the standard procedural terrain generation and Perlin and octave noises from the java version, biomes and their temperature code, standard placement of blocks like trees, grass, flowers, gravel, stone, sand, overworld/nether rendering, and more. The geometry has separated into three groups, opaque terrain such as stone, and dirt, clear geometry like water and ice blocks,. and cutout geometry which is basically objects/items that are seemingly 3d, but are see through like grass, ladders, iron bars, and more which all were manually configured and separated to allow graphic processors mainly to process them efficiently in open gl properly. There is still a bit of bottleneck of CPU and GPU performance especially in way newer systems as open gl 1.1 uses immediate mode for rendering and newer versions like Open Gl 1.5 actually do support VBOs and actually skip draw calls when needed, but performance is still relatively decent for its codebase.

Chunks were rendered in this version using nearest-first chunk admission which loaded nearest chunks closest first before loading chunks first which prevented extreme lag and frame issues. Caps were also implemented in the memory management and in how many meshes could the world use. Just like in the java version, it runs at 20 ticks per second to allow the world and entities to function as normal and made sure to not tie in with the FPS rate. Mathhelper files from the java version were also converted and developed to have much more efficient equations and perform better mathematical equations in trigonometry, mainly for graphics rendering, 3d movements, and block placement which was important to getting good performance on older hardware.

The NBT and McRegion storage code was also really tedious to convert and was initially very unstable to use. When a chunk was updated, like placing a block or dropping an item, it became a dirty chunk which needed to be meshed and be converted into graphical data, when it needed to be saved, it used to take very long as it saved somehow even entities in chunks, but it was later excluded and rendered individually as individual 3D models.

Neighbor-border invalidation in more detail was also implemented properly to help save processing power and tells chunk to just recalculate its edges when touching another chunk. The lighting system and their algorithms were also implemented and converted to be just like from the java version that allowed different light levels and detect sunlight code to initiate any chunk updates, however it was simplified a little to make sure it wouldn't lag out the system. A render distance meter was actually introduced, like in the newer java versions instead of the original used java version, tiny, medium, and far distance which allowed the player to see more of the world which for some reason during development, it kept being too short. Now for the Open Gl 1.1 code, display lists were used which compiled all the color and vertex data in a chunk in a single list where the CPU would just send a couple of commands instead of the hundreds if not thousands of commands to draw and send the many vertices, which was a bit bugged and actually heavily lagged out the game during testing.

glGetError which used to initiate every frame and bog down the system, it was now removed and later coded in to sample every 128 frames. The check of whether or not chunk graphics list were valid were removed along with replacing the glGetFloat which pulled data back and forth to Cpu and GPU which could slow down system, to just use the earlier calculated frustum matrices and render that. A 3x3 read only chunk neighborhood was implemented where it basically copies around 9 chunks to read only memory to prevent world corruption and process the data to then build a visual mesh. This fixed much of the stuttering and lag issues that were in earlier versions.

The physics and collider systems entities and blocks were using it exactly as the java version which was converted This was how mob attacks, water/lava flow, and more related were implemented to look like the real deal. The day and night cycle is around 24,000 ticks which was exactly implemented in the program and dropped items despawn around 6000 ticks in loaded chunks.

Now for networking and multiplayer support, nearly all packet files were implemented from the original java version and converted into C code, though most of its related and needed code is concentrated in packet.c and the rest is a bit metadata. It currently only uses/supports Winsock 2 code which was like around Windows 98 and above systems, windows 95 could have it if it has winsock 2 dependencies. Restarting the games a couple times and waiting between time intervals like from 1-3 seconds before reopening seems to fix some ghost networking errors.

All the 45 GUI files were able to be converted and later developed to make it all work in Open Watcom, and work under windows 95/98 restrictions. An additional meant usable button was added later on in the controls section which is the double sprint toggle button which can be on or off.

For memory allocation, there were different memory modes developed depending on the Windows OS chosen, for example, Win98 has a max ceiling ram limit of 128mb, 48 chunks renderable, 8-12mb chunk budget, and 20 mb for CPU mesh budget. NT operating systems which usually have a decent amount of Ram has max ram limit of around 256mb, 80-96 render distance limit which was the max the render distance can go currently, 20-32mb chunk budget, and around 64-128 mb CPU mesh budget. Networking queues were even also limited, going from 512kb in lower end windows 98 machines to around 8 mb on modern machines. The memory management and pointers were really hard to develop and there were hundreds of versions before this that just kept crashing the game.

The assets folder which contain all the textures and atlases for the game uses mainly pngs for newer windows and tga or older windows. The texture for blocks mainly uses terrain.png while items use items.png. TexturePackList files in the java version were later on converted to also have support for texture packs for mainly beta 1.7.3. There is however a glitch, especially in newer versions of the game where the sounds and music folder in the assets folder would cause the game to crash, especially in Win9x compatibility mode from some mp3 issues, though it may not happen on a real win9x system, if it somehow crashes the game, renaming the sounds and music folder in the main assets folder to something gibberish can help, but there would be no sound. Initially during development, the music and sounds were fillers, and there are some real songs and sounds from the game. Texture UV mapping also wasn't really thought of until V3 and then later V5 which now has proper java limb math and uv mapped textures from the atlases. Even still, there are some slight gameplay glitches and rendering issues, but it is overall stable and playable.

The bare requirements for running the program, especially the stable V135 version is just having the exe file as well has having a texturepacks folder with a texture pack zip file inside of it. This should work and even stop some crashes on Win9x machines however it may be missing some icons and textures for some items and GUIS which are in the actual assets folder.

Minimum Requirements: OpenGL 1.1-compatible graphics adapter, Approximately 16 MB video memory, recommended is 64-128mb of vram Working 16-bit or 32-bit color desktop mode Approximately 800 MHz Pentium III, Athlon, or comparable x86 processor "Possible to Work On Windows 98" but text rendering may fail Can Work On Modern Windows As Well Around 256mb of Ram Hardware texture support A stable vendor OpenGL driver is strongly recommended, but Open Gl 1.1 can work Module-registration manifests Asset paths Version and executable-name definitions for it to run.

This program uses only imports of WS2_32, OPENGL32, GDI32, USER32, WINMM, KERNEL32, and WS2_32 which I later on figured out it can be relatively easily to be converted or even able to run with a x86-64 emulator on Linux.

I gave the project a very basic name, called CloneMC V2.0 which might change soon, the repo is still a bit of a mess, but the source code files and the executable, along with other files like the makefile is all in the zip file. There is a lot more info about this there.

This project was more or less like a side project with an efficient CAD program being the main goal for the test creation of this project. The License Example file is provided if needed to use any of the java files for references or for adding features, however understanding of the code and custom code may be needed currently to implement any additional features/bug fixes/missing implementations from the java version.

https://github.com/sworks692/CloneMC-V2.0-Entirely-In-C-and-Open-Gl-1.1/tree/main

u/sworks694 — 1 day ago

Games dos anos 90/2000 Windows

Cara, tenho um legion go gen 1 e estava louco pra achar alguns jogos da minha infância que eu jogava com meu pai. Meu pai faleceu alguns anos atrás mas as lembranças sempre me pegam. E cara que incrível poder achar essas pérolas raras do Windows de quando eu era criança 😭❤️

u/dijkvicente — 16 hours ago
▲ 144 r/windows98

Real time ray tracing on Windows 98, emulated pentium 2, 256mb ram. Reflections are in the right places. SDL 1.2.15 and GCC 13

Running at around 18 million flops per frame.

u/utsnik — 1 day ago

having a hard time installing windows on an old 90's PC, need advice

so i got an old 90's PC with a pentium III slot 1, creative 3D blaster annihilator pro and 256Mb of RAM

at first i wanted to install windows 98, but it keeps giving me some random error ( see image below )

https://preview.redd.it/kiegkmzqb5kh1.png?width=720&format=png&auto=webp&s=bf1bb2d3b9649a278cccf11e7ea136fbe7bb5123

at first i thought it was the RAM, so i bought another RAM stick, but still the same issue

so then i tried to install another OS, i tried windows 2000, but for some reasons, once it copied all the files to the HDD i just get a black screen when trying to boot from it and complete the install, only once i was able to see loading bar and it wasnt moving

then i tried windows xp and it gave me a " disk read error " when trying to boot from the hdd and complete the install

i tried removing all the PCI cards, i tried with both an AGP GPU and a PCI GPU, 2 different hard drives, but still nothing, , i have no clue what's wrong

reddit.com
▲ 53 r/windows98+1 crossposts

Anyone have any tips to temporarily revive this POS Quantum Drive?

This drive booted perfectly with no issue a few weeks ago and suddenly its dead. It spins up, clicks, spins down, and then the green LED flashes. Not detected in the BIOS anymore either. I know these Bigfoot drives were crap even when new, but if anyone knows how to temporarily revive it to backup the data I would really appreciate it.

u/Inspiron606002 — 3 days ago

Needing help with finding a cd drive and shell for my gateway windows 98.

Hi everyone! I acquired a gateway 98 about a year ago and planned for it to be my project pc. I'm needing to find a drive that will work with it as the one in it currently is dead so I can't do a fresh install. I call it Frankenstein as it is just a metal casing, just internals. Where the heck can I find a shell for this thing? I have looked and looked with no luck!

u/Commercial_Novel3154 — 2 days ago

windows 98 doesn't boot after hard disk change

Hi, I changed my Compaq presario 5443's 20GB hard disk to an 80GB one and now my computed gets stuck in the compaq logo, this doesn't happen when I change it back to the 20GB one. Does anybody know what to do in this case?

u/kissofthespiderwoman — 3 days ago
▲ 142 r/windows98+1 crossposts

I just finished my first ever book after 4 years. It's a non-fiction retrospective on 1995 to 2001 PC gaming/computing, going over 555 games, multiplayer services, controversial events, chipset companies, etc. across 42 chapters (+ a question for anyone who has used Itch, Kobo, or other platforms)

First, the self-promotion of course:

Although it took me about four years, I've finally finished my first book. It technically comes out on Sunday (e-book only for now due to the sheer size and large amount of content), and I've been sharing in different places outside of just Reddit, albeit at a focused rate so that I don't burn myself out.

And then it occurred to me that r/NewAuthor exists. So, thank you to the mods for giving new authors an outlet to push their work out there.

I know that my book has an oddly specific topic. More than likely, it will only appeal to someone who lived through that '95 to '01 era or to someone who has a desire towards learning about an era before their time. But I'm alright with that, because writing is just a side hobby of mine, and I don't ever expect anything substantial, which is also why I tried to make the price decently sensible ($3.99 lol).

You can buy/pre-order it here, but please excuse the incredibly basic '90s website:

https://win9xera.neocities.org/

Second, the question:

Currently, I'm only selling my e-book on Amazon and Google (Google has my epub file frozen though - I just contacted support about it). Later in the year, I plan on selling on Itch. I also wanted to sell on Kobo, but apparently their file size limit is 100mb so that doesn't quite work for me.

Since it seems like most authors here have sold on Amazon or Google, I was just curious about your experiences with selling on Itch and Kobo (or any other non-mainstream platform), specifically when comparing to the other more mainstream outlets. I know the basics about 'em, but I'd like to hear from new/new-ishhh authors directly:

Did you get more reviews or engagements on the other platforms (or do you regret selling on the other platforms due to a lack of activity)? Was the publishing process easier on the other platforms (or was it a bigger headache)? Do you think that your book benefited from the wider platform choices (or was it simply too spread out)? Etc etc etc.

u/Xanarki — 4 days ago
▲ 61 r/windows98+1 crossposts

Does anyone have an original OEM HP Windows 98 Install?

Hello everyone, I need help.

I have an HP Pavilion 6350 that's hard drive just crapped out. Does anyone have another Pavilion with the original OEM Windows 98 install? It seems this version is from early 1998 and is pretty rare. If anyone has an early 1998 install I would really appreciate if you could make an image of the drive, or send me some of the software files that I need.

Thanks in advance.

u/Inspiron606002 — 4 days ago

Changed the soundblaster

Upgraded to the audigy player in a 98 pc. A bit more modern, you could say.

u/HelmsHoldfast — 5 days ago

Built a S3 Trio/Virge driver from ground up. Need help testing

Hi Guys,

I've been building a VGA driver from the ground up. The long term goal is to add support for more VGA chipsets and maybe VLB support or even OpenGL. If I can add some features that didn't exist in the native drivers that would be cool.

I'm a long way off that, but have some basic DirectDraw and Direct3D support.

I'm really keen to get some help to test. I've primarily only tested in 86box in Windows 98se but plan to test on my real hardware soon.

https://github.com/michaeldale/velocity9x Here is current release version: https://github.com/michaeldale/velocity9x/releases/tag/v0.3

Requirements:

  • Windows 98se
  • S3 ViRGE/DX 86C375 or S3 Trio32/64 86C764 PCI video card

If you don't have a supported video card I've love if you can run this tool to collect info about your card, for now I will focus on S3 cards. This tool also runs under DOS.

https://github.com/michaeldale/velocity9x/releases/tag/survey-v1 / https://github.com/michaeldale/velocity9x/releases/download/survey-v1/V9XSURV.EXE

This has been written with Claude & ChatGPT.

Here is a screenshot of the settings page.

https://preview.redd.it/29tlmtxnphjh1.png?width=405&format=png&auto=webp&s=50ca6b63b697addcdab03fe8632ba58e26cec84e

reddit.com
u/mwdmeyer — 5 days ago

HELP ME FIND A PSU!

This has been my trusty aopen XcCube pc. It was really an XP machine, but I down(up)graded it to run win 98. Recently I have been having issues with it switching on (flea power) and now it just won't switch on at all.

My guess is the PSU is gone. I'm reaching out to this community for help, as you get my plight!

The current PSU is an AOPEN FSP220-60CU(PF) 220w

I don't need an exact replacement. This pc is already a Frankenstein's monster of bits and bobs, but what limits me is the form factor. The XcCube is small form factor, so I need a power supply that will both fit and won't explode/set my computer and or house on fire.

I am by no means an expert in this.

Any help would be great.

u/LectureRemote4733 — 6 days ago
▲ 476 r/windows98+3 crossposts

The Sounds of floppy Drive

Heard these sounds almost after 25 years ..

u/sidmehra1992 — 8 days ago