forked from KolibriOS/kolibrios
Fix FCEU save folder path and window width
Add 4 freeware NES games to Templates folder Update SNTP by Coldy git-svn-id: svn://kolibrios.org@7642 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
dc532976c9
commit
33fb3deeb1
@ -246,6 +246,7 @@ extra_files = {
|
||||
{"kolibrios/res/skins/", "../skins/authors.txt"},
|
||||
{"kolibrios/res/templates/", "common/templates/*"},
|
||||
{"kolibrios/res/templates/", PROGS .. "/emulator/e80/trunk/games/*"},
|
||||
{"kolibrios/res/templates/NES", "common/templates/NES/*"},
|
||||
{"kolibrios/res/wallpapers/", "common/wallpapers/*"},
|
||||
}
|
||||
if build_type == "rus" then tup.append_table(extra_files, {
|
||||
|
61
data/common/templates/NES/AlterEgo.txt
Normal file
61
data/common/templates/NES/AlterEgo.txt
Normal file
@ -0,0 +1,61 @@
|
||||
____ _ ___ ____ ____
|
||||
|__| | | |___ |__/
|
||||
| | |___ | |___ | \
|
||||
____ ____ ____
|
||||
|___ | __ | |
|
||||
|___ |__] |__|
|
||||
|
||||
|
||||
Freeware 2011 by Shiru, Kulor, Denis Grachev
|
||||
|
||||
|
||||
How to play: You control a hero who has a phantom twin, his alter ego.
|
||||
When the hero moves, the alter ego moves too in a mirrored
|
||||
fashion. In some levels the movements are mirrored
|
||||
horizontally, in other ones they are mirrored vertically.
|
||||
You can switch between the hero and his alter ego limited
|
||||
number of times in a level.
|
||||
To complete a level, you need to collect all the jumping
|
||||
pixels. Usually you can take them only with the hero, but
|
||||
on some levels there are pixels of another color, these
|
||||
can only be collected by the alter ego.
|
||||
There are evil skulls around, don't touch them and do not
|
||||
fall into the water or outside of the level, or you'll lose
|
||||
an attempt. At the start you have 5 attempts, and one extra
|
||||
attempt is added after beating every 5 levels. You also can
|
||||
restart a level using pause menu, it also takes an attempt.
|
||||
There are 25 levels total in the game.
|
||||
|
||||
Ž¡ ¨£à¥: ˆ£à®ª ã¯à ¢«ï¥â £¥à®¥¬, ã ª®â®à®£® ¥áâì ¯à¨§à çë© ¤¢®©¨ª,
|
||||
¥£® ¢â®à®¥ "ï". „¢®©¨ª §¥àª «ì® ¯®¢â®àï¥â ¤¢¨¦¥¨ï £¥à®ï.
|
||||
<20> ¥ª®â®àëå ã஢ïå ¤¢¨¦¥¨¥ ¤¢®©¨ª ®âà ¦¥® ¯®
|
||||
£®à¨§®â «¨, ¤à㣨å - ¯® ¢¥à⨪ «¨.
|
||||
ˆ£à®ª ¬®¦¥â ¯¥à¥ª«îç âìáï ¬¥¦¤ã £¥à®¥¬ ¨ ¤¢®©¨ª®¬
|
||||
®£à ¨ç¥®¥ ç¨á«® à § § ®¤¨ ã஢¥ì.
|
||||
„«ï ¯à®å®¦¤¥¨ï ãà®¢ï ¨£à®ª ¤®«¦¥ ᮡà âì ¢á¥
|
||||
¯®¤¯à루¢ î騥 â®çª¨. Ž¡ëç® ¨å ¬®¦¥â ¡à âì ⮫쪮 £¥à®©,
|
||||
® ¥ª®â®àëå ã஢ïå ¢áâà¥ç îâáï â®çª¨ ¤à㣮£® 梥â ,
|
||||
ª®â®àë¥ ¬®¦¥â ¡à âì ⮫쪮 ¤¢®©¨ª.
|
||||
<20> ã஢ïå ¯à¨áãâáâ¢ãîâ ¯à®â¨¢¨ª¨, §«ë¥ ç¥à¥¯ . …᫨
|
||||
¤®ª®áãâìáï ¤® ç¥à¥¯ , 㯠áâì ¢ ¢®¤ã ¨«¨ § ¯à¥¤¥«ë ã஢ï,
|
||||
®â¨¬ ¥âáï ®¤ ¯®¯ë⪠.
|
||||
‚ ç «¥ ¨£àë ¤ ñâáï ¯ïâì ¯®¯ë⮪, ª ¦¤ë¥ ¯ïâì ¯à®©¤¥ëå
|
||||
ã஢¥© ¤®¡ ¢«ï¥âáï ¥éñ ®¤ . ‹î¡®© ã஢¥ì ¬®¦® ç âì
|
||||
§ ®¢® ç¥à¥§ ¬¥î ¯ ã§ë, ® íâ® ®â¨¬ ¥â ¯®¯ëâªã.
|
||||
‚ᥣ® ¢ ¨£à¥ 25 ã஢¥©.
|
||||
|
||||
Credits: Original ZX Spectrum game, levels, design: Denis Grachev
|
||||
NES code, graphics, sounds, redesign: Shiru
|
||||
NES original music: Richard "Kulor" Armijo
|
||||
Testing: Alone Coder, Pinball Wizzard, James Lothridge
|
||||
|
||||
Website: www.shiru.untergrund.net
|
||||
|
||||
The game is not licensed or endorsed by Nintendo company in any way. It is free
|
||||
of charge, released into Public Domain, and provided "as is", without warranty
|
||||
or responsibility of any kind.
|
||||
|
||||
If you like it and think you would pay for it, please consider to visit Donate
|
||||
link at http://shiru.untergrund.net and make a donation. Donations will be
|
||||
redirected to a charity, providing a little bit of help for those in need, and
|
||||
encourangement for the author to further work on projects like this.
|
BIN
data/common/templates/NES/Alter_Ego.nes
Normal file
BIN
data/common/templates/NES/Alter_Ego.nes
Normal file
Binary file not shown.
BIN
data/common/templates/NES/Chase.nes
Normal file
BIN
data/common/templates/NES/Chase.nes
Normal file
Binary file not shown.
8
data/common/templates/NES/Chase.txt
Normal file
8
data/common/templates/NES/Chase.txt
Normal file
@ -0,0 +1,8 @@
|
||||
This is an example game that is developed for my article Programming NES games in C. The article itself is located at my website in the Articles section, to make things simpler in case of possible updates.
|
||||
|
||||
Programming NES Article:
|
||||
http://shiru.untergrund.net/articles/programming_nes_games_in_c.htm
|
||||
|
||||
|
||||
http://shiru.untergrund.net
|
||||
mailto:shiru@mail.ru
|
BIN
data/common/templates/NES/LanMaster.nes
Normal file
BIN
data/common/templates/NES/LanMaster.nes
Normal file
Binary file not shown.
54
data/common/templates/NES/LanMaster.txt
Normal file
54
data/common/templates/NES/LanMaster.txt
Normal file
@ -0,0 +1,54 @@
|
||||
_______ __ _
|
||||
| |_____| | \ |
|
||||
|_____ | | | \_|
|
||||
_______ _______ _______ _______ _______ ______
|
||||
| | | |_____| |______ | |______ |_____/
|
||||
| | | | | ______| | |______ | \_
|
||||
|
||||
|
||||
PD 2011 Shiru
|
||||
|
||||
How to play: On every level you have a set of computers and fragments
|
||||
of wires. Your goal is to connect together all the computers
|
||||
on a level. To do this, you should rotate wire fragments or
|
||||
the computers themselves using A, B or Select buttons. Time
|
||||
is limited. If you haven't made it in time, the game is over,
|
||||
and you have to use pass code to try again.
|
||||
Final levels of the game has more complex networks, more wire
|
||||
types, unused wire segments, and the network starts to
|
||||
degradate over the time. There are 50 levels in the game.
|
||||
After completing a level, you receive a pass code, also
|
||||
displayed in the pause menu. You can enter it in the main menu
|
||||
using Code item to resume play later. It is also entered
|
||||
automatically every new level, so you can easily continue
|
||||
game when the game is over or interrupted.
|
||||
|
||||
Ž¡ ¨£à¥: <20> ª ¦¤®¬ ã஢¥ ¨£àë ¯à¨áãâáâ¢ã¥â ¥áª®«ìª® ª®¬¯ìîâ¥à®¢ ¨
|
||||
®â१ª®¢ ¯à®¢®¤ . ‡ ¤ 祩 ¨£à®ª ï¥âáï ᮥ¤¨¥¨¥ ¢á¥å
|
||||
ª®¬¯ìîâ¥à®¢. <20>â® ¤¥« ¥âáï ¯ãâñ¬ ®â१ª®¢ ¯à®¢®¤ ¨ á ¬¨å
|
||||
ª®¬¯ìîâ¥à®¢ ª®¯ª ¬¨ A, B ¨ Select. <20> ¯à®å®¦¤¥¨¥ ã஢ï
|
||||
®â¢®¤¨âáï ®£à ¨ç¥®¥ ¢à¥¬ï. Š®£¤ ®® ª®ç ¥âáï, ¨£à
|
||||
§ ª 稢 ¥âáï ¯à®¨£àë襬. „«ï ¯®¢â®à®© ¯®¯ë⪨ ¬®¦¥â ¡ëâì
|
||||
¨á¯®«ì§®¢ à ¥¥ ¯®«ãç¥ë© ª®¤ ã஢ï.
|
||||
<20> ¤ «ì¥©è¨å ã஢ïå ¨£àë á¥âì ¯à®¢®¤®¢ ãá«®¦ï¥âáï,
|
||||
¯®ï¢«ïîâáï ®¢ë¥ â¨¯ë ¯à®¢®¤®¢ ¨ ¨å ¥¨á¯®«ì§ã¥¬ë¥ äà £¬¥âë,
|
||||
á¥âì ç¨ ¥â ¯®á⥯¥® «®¬ âìáï. ‚ ¨£à¥ 50 ã஢¥©.
|
||||
<20>®á«¥ ¯à®å®¦¤¥¨ï ãà®¢ï ¢ë¤ ñâáï ª®¤, â ª¦¥ ®â®¡à ¦ ¥¬ë© ¢
|
||||
¬¥î ¯ ã§ë. <20>â®â ª®¤ ¬®¦¥â ¡ëâì ¢¢¥¤ñ ¢ £« ¢®¬ ¬¥î ¤«ï
|
||||
¯à®¤®«¦¥¨ï ¨£àë á 㦮£® ã஢ï. Ž â ª¦¥ ¢â®¬ â¨ç¥áª¨
|
||||
¢¢®¤¨âáï ¯®á«¥ ¤®á⨦¥¨ï ª ¦¤®£® ®¢®£® ã஢ï, çâ® ¯®§¢®«ï¥â
|
||||
«¥£ª® ¯à®¤®«¦¨âì ¨£àã ¯®á«¥ ¯à®¨£àëè ¨«¨ ¢ë室 ¢ £« ¢®¥ ¬¥î.
|
||||
|
||||
Credits: Everything made by Shiru
|
||||
Tested by Alone Coder, B00daW, Pinball Wizzard, MrFTBN
|
||||
|
||||
Website: www.shiru.untergrund.net
|
||||
|
||||
The game is not licensed or endorsed by Nintendo company in any way. It is free
|
||||
of charge, released into Public Domain, and provided "as is", without warranty
|
||||
or responsibility of any kind.
|
||||
|
||||
If you like it and think you would pay for it, please consider to visit Donate
|
||||
link at http://shiru.untergrund.net and make a donation. Donations will be
|
||||
redirected to a charity, providing a little bit of help for those in need, and
|
||||
encourangement for the author to further work on projects like this.
|
BIN
data/common/templates/NES/LawnMower.nes
Normal file
BIN
data/common/templates/NES/LawnMower.nes
Normal file
Binary file not shown.
44
data/common/templates/NES/LawnMower.txt
Normal file
44
data/common/templates/NES/LawnMower.txt
Normal file
@ -0,0 +1,44 @@
|
||||
_ ___ ___ _
|
||||
| | /_\ \ / / \| |
|
||||
| |__ / _ \ \/\/ /| .` |
|
||||
|____/_/ \_\_/\_/_|_|\_|_
|
||||
| \/ |/ _ \ \ / / __| _ \
|
||||
| |\/| | (_) \ V /| _|| /
|
||||
|_| |_|\___/ \_/ |___|_|_\
|
||||
|
||||
PD 2011 Shiru
|
||||
|
||||
Description: An arcade game, you control a lawn mower and cut lawns
|
||||
A sort of remake of classic lawn mower game (from 1980s)
|
||||
|
||||
How to play: You control a lawn mower. The goal of the game is to cut
|
||||
ten lawns. The lawn mower always moves with low speed, you
|
||||
can increase the speed by holding A or B button.
|
||||
Amount of fuel is limited. When the fuel runs out, the game
|
||||
is over, and you have to play the level again.
|
||||
Sometimes a can appears on the cut lawn. If you touch it,
|
||||
it refills fuel. Further in the game there are flowers and
|
||||
stones on lawns, moving through them reduces amount of fuel.
|
||||
|
||||
Ž¡ ¨£à¥: ˆ£à®ª ã¯à ¢«ï¥â £ §®®ª®á¨«ª®© ¨ ¤®«¦¥ ¯®áâà¨çì ¤¥áïâì
|
||||
£ §®®¢. Š®á¨«ª ¯®áâ®ï® ¤¢¨¦¥âáï á ¥¡®«ì让 ᪮à®áâìî ¨
|
||||
¬®¦¥â ¤¢¨£ âìáï ¡ëáâ॥ ¯à¨ 㤥ঠ¨¨ ª®¯®ª A ¨«¨ B.
|
||||
Š®á¨«ª ¨¬¥¥â ®£à ¨ç¥ë© § ¯ á ⮯«¨¢ . Š®£¤ ®®
|
||||
¨§à á室®¢ ®, ¨£à § ª 稢 ¥âáï ¨ ã஢¥ì 㦮 ¯à®å®¤¨âì
|
||||
§ ®¢®. ˆ®£¤ ¯®áâਦ¥®¬ £ §®¥ ¯®ï¢«ï¥âáï ª ¨áâà ,
|
||||
¯®¯®«ïîé ï § ¯ á ⮯«¨¢ ¯à¨ ª á ¨¨. „ «¥¥ ¢ ¨£à¥ ¯®ï¢«ïîâáï
|
||||
梥âë ¨ ª ¬¨, ¤¢¨¦¥¨¥ ¯® ¨¬ ®â¨¬ ¥â ¬®£® ⮯«¨¢ .
|
||||
|
||||
Credits: Everything made by Shiru
|
||||
Tested by Alone Coder, B00daW, Pinball Wizzard, MrFTBN
|
||||
|
||||
Website: www.shiru.untergrund.net
|
||||
|
||||
The game is not licensed or endorsed by Nintendo company in any way. It is free
|
||||
of charge, released into Public Domain, and provided "as is", without warranty
|
||||
or responsibility of any kind.
|
||||
|
||||
If you like it and think you would pay for it, please consider to visit Donate
|
||||
link at http://shiru.untergrund.net and make a donation. Donations will be
|
||||
redirected to a charity, providing a little bit of help for those in need, and
|
||||
encourangement for the author to further work on projects like this.
|
Binary file not shown.
@ -31,3 +31,6 @@
|
||||
- ñì. ôàéë "ChangeLog.txt" ÷òîáû | - see file "ChangeLog.txt" for full list of changes
|
||||
ïðîñìîòðåòü âåñü ñïèñîê èçìåíåíèé |
|
||||
|
||||
27.04.19 == Port v0.21 == Через HEX редактор
|
||||
- исправлен путь для сохранений
|
||||
- увеличена ширина окна на 1 пиксель
|
Binary file not shown.
@ -17,9 +17,18 @@ sntp 88.147.254.227 -tz 3 -ss
|
||||
|
||||
|
||||
Известные проблемы:
|
||||
Пока не замечены
|
||||
Пока не замечены.
|
||||
|
||||
Обратная связь:
|
||||
Об ошибках и пожеланиях сообщайте в топике http://board.kolibrios.org/viewtopic.php?f=40&t=3864
|
||||
|
||||
История версий:
|
||||
0.5.4
|
||||
+ Исправлены ошибки отображения и доработана синхронизация с ключом -ss (найдено Leency)
|
||||
+ Исправлено: не показывается окно (свернуто в панель задач) при командной строке host -s[t|s],
|
||||
проблема не проявляется, если добавить ключ -tz или без ключей.
|
||||
+ Исправлено: При ключе -tz 0 сообщение о синхронизации не переносится на новую строку.
|
||||
|
||||
0.5.3
|
||||
+ Исправлена ошибка конвертации времени, в частности, проблема появлялась при timestamp = 0x7fffffff
|
||||
+ Доработана корректировка с учетом часового пояса
|
||||
|
@ -61,10 +61,9 @@ START:
|
||||
; fatal error(console error)
|
||||
;jnz exit
|
||||
|
||||
|
||||
; setup params
|
||||
call parse_params
|
||||
|
||||
;clear eax
|
||||
call tz_validate
|
||||
; is TZ correct?
|
||||
cmp ebx,0
|
||||
@ -189,6 +188,9 @@ START:
|
||||
jne @f
|
||||
cmp [tz_m],0
|
||||
jne @f
|
||||
mov eax, str_tz
|
||||
add eax, 9
|
||||
cinvoke con_printf, eax ; \n\0
|
||||
jmp .no_bias
|
||||
|
||||
@@:
|
||||
@ -212,24 +214,23 @@ START:
|
||||
cinvoke con_printf, str_tz, eax, ebx
|
||||
|
||||
.no_bias:
|
||||
|
||||
cmp [sync],0
|
||||
je exit
|
||||
cmp [sync], SYNC_S
|
||||
jne @f
|
||||
mov eax, str_s
|
||||
jmp .sync_ok
|
||||
@@:
|
||||
@@:
|
||||
cmp [sync], SYNC_ST
|
||||
jne @f
|
||||
mov eax, str_st
|
||||
jmp .sync_ok
|
||||
@@:
|
||||
cmp [sync], SYNC_ST
|
||||
jne .sync_ok
|
||||
cmp [sync], SYNC_SS
|
||||
jne exit ; Fixed (24.04.2019): incorrect display with -ss
|
||||
mov eax, str_ss
|
||||
|
||||
.sync_ok:
|
||||
.sync_ok:
|
||||
cinvoke con_printf, str_sync, eax
|
||||
|
||||
jmp exit
|
||||
@ -316,6 +317,7 @@ SYNC_ST = 3
|
||||
parse_params:
|
||||
mov esi, params
|
||||
mov ebx, esi
|
||||
clear ecx ; 26.04.2018 Fixed
|
||||
.f00:
|
||||
lodsb
|
||||
cmp al, 0
|
||||
@ -329,6 +331,8 @@ parse_params:
|
||||
ret
|
||||
|
||||
.exit:
|
||||
cmp ecx,0 ; 26.04.2018 Fixed
|
||||
je @f
|
||||
; mark end of TZ
|
||||
mov byte [ecx+1], 0
|
||||
; now esi = start of TZ
|
||||
@ -393,6 +397,7 @@ parse_params:
|
||||
; jz .invalid
|
||||
; mov [port], bx
|
||||
; jmp .param_loop
|
||||
jmp .invalid
|
||||
|
||||
.tz:
|
||||
; tz setup
|
||||
@ -444,6 +449,7 @@ parse_params:
|
||||
mov eax, 10
|
||||
ret
|
||||
|
||||
|
||||
; Helper to convert char to number
|
||||
; Input:
|
||||
; esi - ptr to char of digit
|
||||
@ -498,7 +504,7 @@ c2n:
|
||||
|
||||
; Sync worker
|
||||
; Input:
|
||||
; eax - in_addr (IPv4)
|
||||
; setuped sockaddr1
|
||||
; Output:
|
||||
; eax - error_code
|
||||
; ebx - error_string
|
||||
@ -510,8 +516,22 @@ c2n:
|
||||
;mov edx, eax
|
||||
sntp_query_time:
|
||||
|
||||
; jmp .test
|
||||
|
||||
; if -ss & 59:59 => waiting for new hour
|
||||
cmp [sync], SYNC_SS
|
||||
jne @f
|
||||
.new_hour?:
|
||||
; Query system time
|
||||
mcall 3
|
||||
cmp ah, 59h ; 59 min. ?
|
||||
jne @f
|
||||
shr eax, 16
|
||||
cmp al, 59h ; 59 sec. ?
|
||||
jne @f
|
||||
;DEBUGF 1, "SNTP: Waiting for new hour.\n"
|
||||
; Wait 100 msec.
|
||||
mcall 5,10
|
||||
jmp .new_hour?
|
||||
@@:
|
||||
; Create socket
|
||||
mcall socket, AF_INET4, SOCK_DGRAM, IPPROTO_IP
|
||||
cmp eax, -1
|
||||
@ -534,10 +554,6 @@ sntp_query_time:
|
||||
;DEBUGF 1, "Socket connected.\n"
|
||||
|
||||
@@:
|
||||
; Query system time
|
||||
;mcall 3
|
||||
;mov [SystemTime], eax
|
||||
|
||||
mcall send, ebp, sntp_packet, SIZEOF_SNTP_PACKET, 0
|
||||
cmp eax, -1
|
||||
jne @f
|
||||
@ -636,9 +652,9 @@ sntp_query_time:
|
||||
@@:
|
||||
.tz_h:
|
||||
; correct hour
|
||||
cmp [sync], SYNC_SS
|
||||
; cmp [sync], SYNC_SS
|
||||
; if -ss ignore timezone for hour
|
||||
je .tz_done
|
||||
; je .tz_done
|
||||
clear eax
|
||||
mov al, [tz_h]
|
||||
add al, cl
|
||||
@ -681,7 +697,6 @@ sntp_query_time:
|
||||
; FIXED: do sync before display!!!
|
||||
; It's need to do sync fast ASAP
|
||||
; Take out any printf from sntp_query_time!
|
||||
|
||||
; sync > 0 ?
|
||||
cmp [sync], 0
|
||||
je .nosync
|
||||
@ -691,6 +706,8 @@ sntp_query_time:
|
||||
; FIXME: Go it from sntp_query_time!
|
||||
;}}
|
||||
|
||||
|
||||
|
||||
; Convert time to BCD
|
||||
clear eax, edx
|
||||
mov al, [esi + DateTime.sec]
|
||||
@ -700,8 +717,17 @@ sntp_query_time:
|
||||
mov al, [esi + DateTime.min]
|
||||
b2bcd
|
||||
mov ch, al
|
||||
|
||||
cmp [sync], SYNC_SS
|
||||
jne @f
|
||||
; if -ss ignore timezone for hour
|
||||
; Query system time
|
||||
mcall 3
|
||||
jmp .ss_done
|
||||
@@:
|
||||
mov al, [esi + DateTime.hour]
|
||||
b2bcd
|
||||
.ss_done:
|
||||
mov cl, al
|
||||
|
||||
; Display BCD time
|
||||
@ -851,7 +877,7 @@ sockaddr1:
|
||||
rb 10
|
||||
|
||||
SIZEOF_SNTP_PACKET = 48
|
||||
sntp_packet db 0x23 ; Li = 0 Vn = 4 Mode = 3 (client) FIX: Why 0x0b?
|
||||
sntp_packet db 0x23 ; Li = 0 Vn = 4 Mode = 3 (client)
|
||||
.Stratum db 0
|
||||
.Pool db 0
|
||||
.Precision db 0
|
||||
@ -868,7 +894,6 @@ align 4
|
||||
@IMPORT:
|
||||
|
||||
library network, 'network.obj', console, 'console.obj'
|
||||
;library network, 'network.obj', console, 'console.obj'
|
||||
import network, \
|
||||
inet_addr, 'inet_addr', \
|
||||
getaddrinfo, 'getaddrinfo', \
|
||||
|
Loading…
Reference in New Issue
Block a user