mirror of
https://github.com/0Nera/BMOSP.git
synced 2024-11-24 17:39:41 +03:00
Заготовка для порта DOOM
This commit is contained in:
parent
fb2effa5b7
commit
7631e05421
2
modules/doom/.gitignore
vendored
Normal file
2
modules/doom/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
PureDOOM.h
|
||||
*.wad
|
20
modules/doom/build.sh
Normal file
20
modules/doom/build.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#/bin/sh
|
||||
echo "Название: DOOM"
|
||||
echo "Лицензия: Публичное достояние"
|
||||
|
||||
CC=${CC:-gcc}
|
||||
ARCH_FLAGS="-fno-stack-protector -ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||
|
||||
if [ -d "../../sdk" ]; then
|
||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||
fi
|
||||
|
||||
wget https://github.com/Daivuk/PureDOOM/raw/refs/heads/master/PureDOOM.h
|
||||
wget https://github.com/Daivuk/PureDOOM/raw/refs/heads/master/doom1.wad
|
||||
|
||||
$CC $ARCH_FLAGS -I../../modlib -finput-charset=UTF-8 -fexec-charset=cp1251 -c main.c -o doom.o
|
||||
$CC $ARCH_FLAGS -Wl,--entry=init,--build-id=none -T ../link.ld doom.o -L../../modlib/lib/ -lmod -o doom.ko
|
||||
|
||||
cp doom.ko ../bin/
|
||||
cp doom1.wad ../bin/
|
||||
echo "Сборка завершена, файл: doom.ko"
|
27
modules/doom/main.c
Normal file
27
modules/doom/main.c
Normal file
@ -0,0 +1,27 @@
|
||||
#include "PureDOOM.h"
|
||||
#include <system.h>
|
||||
|
||||
static const char name[] = "[APP]DOOM";
|
||||
static const char message[] = "DOOM :)";
|
||||
|
||||
static int app_main( ) {
|
||||
log_printf("[%s]\n", message);
|
||||
return 2 + 2;
|
||||
}
|
||||
|
||||
void __attribute__((section(".minit"))) init(env_t *env) {
|
||||
init_env(env);
|
||||
env->ret = &((module_info_t){ .name = (char *)&name,
|
||||
.message = (char *)&message,
|
||||
.type = 0,
|
||||
.data_size = 0,
|
||||
.data = (void *)&app_main,
|
||||
.err_code = 0,
|
||||
.module_id = 0,
|
||||
.irq = 0,
|
||||
.irq_handler = 0,
|
||||
.get_func = 0,
|
||||
.after_init = 0 });
|
||||
mod_update_info(env);
|
||||
delete_thread( );
|
||||
}
|
Loading…
Reference in New Issue
Block a user