Skip to content
 
 

Latest commit

 

History

124 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Doom version for Sony Anycast AWS-G500

Sony Anycast AWS-G500 is Pentium III @ 930 MHz machine with 512MB RAM and Intel i815 chipset Running MontaVIsta Linux 3.0 uname -a: Linux anycast 2.4.20_n20-mpu300 #3 Mon Jan 24 14:39:50 JST 2005 i686 unknown

Obtain HDD image from https://archive.org/details/anycast.7z Add evdev module to kernel by editing /etc/modules Replace /usr/local/fontine/bin/fontine with bash script Add doomgeneric binary and doom wad files into /usr/local/fontine/bin/ Never forget to do backups for odified files.

When running Anycast Station (Anycast GUI): Set INT as preview. You'll get INT setup menu. Select Text typing tool (or press F5) Confirm exit from Anycast GUI (enter) Enjoy!

These tricks are relatively easy:

  • Because we can remove root password and mess with Linux
  • Because Anycast have gcc compiler on HDD
  • AI help with Makefile modifications
  • AI help with rendering C code modifications
  • W need to get 1280x800 resolution video on /dev/fb0

Mofications to source code was made using "vibe coding" (you know that crap) in few hours.

No audio yet, because I am still researching realtime audio hardware. According to Service manual, Pentium III board have S/PDIF out via C-Media PCI CMI8738-MC6 S/PDIF is converted and feed into MIX-49 audio subsystem processing board. I'm not figured out how to poke usb_acaudio driver to get audio input from from P III (and CMI) into audio routing.

Original readme from github.com/ozkl/doomgeneric

doomgeneric

The purpose of doomgeneric is to make porting Doom easier. Of course Doom is already portable but with doomgeneric it is possible with just a few functions.

To try it you will need a WAD file (game data). If you don't own the game, shareware version is freely available (doom1.wad).

porting

Create a file named doomgeneric_yourplatform.c and just implement these functions to suit your platform.

  • DG_Init
  • DG_DrawFrame
  • DG_SleepMs
  • DG_GetTicksMs
  • DG_GetKey
Functions Description
DG_Init Initialize your platfrom (create window, framebuffer, etc...).
DG_DrawFrame Frame is ready in DG_ScreenBuffer. Copy it to your platform's screen.
DG_SleepMs Sleep in milliseconds.
DG_GetTicksMs The ticks passed since launch in milliseconds.
DG_GetKey Provide keyboard events.
DG_SetWindowTitle Not required. This is for setting the window title as Doom sets this from WAD file.

main loop

At start, call doomgeneric_Create().

In a loop, call doomgeneric_Tick().

In simplest form:

int main(int argc, char **argv)
{
    doomgeneric_Create(argc, argv);

    while (1)
    {
        doomgeneric_Tick();
    }
    
    return 0;
}

sound

Sound is much harder to implement! If you need sound, take a look at SDL port. It fully supports sound and music! Where to start? Define FEATURE_SOUND, assign DG_sound_module and DG_music_module.

platforms

Ported platforms include Windows, X11, SDL, emscripten. Just look at (doomgeneric_win.c, doomgeneric_xlib.c, doomgeneric_sdl.c). Makefiles provided for each platform.

emscripten

You can try it directly here: https://ozkl.github.io/doomgeneric/

emscripten port is based on SDL port, so it supports sound and music! For music, timidity backend is used.

Windows

Windows

X11 - Ubuntu

Ubuntu

X11 - FreeBSD

FreeBSD

SDL

SDL

About

Easily portable doom. Sony Anycast AWS-G500 edition

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages