rajko-horvat / openciv1 Goto Github PK
View Code? Open in Web Editor NEWOpen source rewrite of the original Civilization Game designed by Sid Meier and Bruce Shelley in year 1991
License: MIT License
Open source rewrite of the original Civilization Game designed by Sid Meier and Bruce Shelley in year 1991
License: MIT License
I am testing the latest version on OSX and custom maps work fine.
However with Earth the map is a giant block of grassland:
And this is not regular grassland:
The grassland is so fertile it produces a population + improvement + pollution every turn - could make for an interesting game! Save game is attached if anyone is interested.
This was with Zulu. I tried again as Aztec/Mongol and the start position is at sea:
This bug is expected to be fixed after all game structures are mapped properly (November 2023).
Occurs in both master and in Translate-UnitDefinition.
Attached save: CIVIL0.zip
All of the players are put at the same continent at the beginning of game.
The bug is expected to be fixed after all game structures are mapped properly (November 2023).
Describe the bug
Unable to select the Fish square in the city to get 2 Food and 3 Trade.
To Reproduce
Functions need their parameters introduced and propagated throughout the code. Seed details at Wiki
Describe the bug
Tried both of my backups versions
Both have SP256.PAL not SP257.PAL
Got error all the time:
Missing resource file ~\OpenCiv1-Alpha7-win-x64\SP257.PAL. Please ensure that the file exists at
specified path.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Desktop (please complete the following information):
Additional context
Version available by URL https://archive.org/details/CIVILIZATION_201902 worked fine however
So NOT every owned copy works
The palace sections appear immediately rather than the transition animation.
Also noticed by axx: https://forums.civfanatics.com/threads/rewrite-of-civilization-1-source-code-open-civilization-1-project.682623/page-7#post-16546187
Hi !
Using the latest .NET would make this cross platform and enable more contributions from people who do not use Windows.
I'm curious, what would be the main issues preventing that, and would you accept such a PR ?
Log file made by this error is 3 GB large. Consequently I can't open it in notepad++ let alone notepad.
Edit: After I deleted the log file and repeated the error, the size of the log.txt is only 80 MB (it's still too large to be uploaded on github). Does the log fill after each game session?
I found when I capture this city of size 2 the game enters the city screen but then afterwards the city is gone:
Describe the bug
When boarding any ship with any unit, the first unit that your civilization has built (if still alive) goes on sentry (gets a gray silhouettes).
To Reproduce
Steps to reproduce the behavior:
Desktop (please complete the following information):
Probably not worth trying to support Mac at this time, but anyway I got the following error immediately starting OpenCiv1 on Macbook Air M1 with Visual Studio 17.6.7:
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: mono-sgen64 [8841]
Path: /Library/Frameworks/Mono.framework/Versions/6.12.0/bin/mono
Identifier: mono-sgen64
Version: ???
Code Type: X86-64 (Translated)
Parent Process: VisualStudio [8674]
Responsible: VisualStudio [8674]
User ID: 501
Date/Time: 2023-12-31 09:16:18.9078 -0500
OS Version: macOS 14.2.1 (23C71)
Report Version: 12
Anonymous UUID: A82B91F0-07E7-2842-B234-B96C6C6D0EE0
Sleep/Wake UUID: 5E25C0D0-43E2-4995-8784-1B3CA9FAFAFC
Time Awake Since Boot: 26000 seconds
Time Since Wake: 2376 seconds
System Integrity Protection: enabled
Notes:
PC register does not match crashing frame (0x0 vs 0x7FF892AD6A78)
Crashed Thread: 0 tid_103 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000011
Exception Codes: 0x0000000000000001, 0x0000000000000011
Termination Reason: Namespace SIGNAL, Code 6 Abort trap: 6
Terminating Process: mono-sgen64 [8841]
VM Region Info: 0x11 is not in any region. Bytes before following region: 140722857312239
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
mapped file 7ffc97ec0000-7ffcc08d8000 [650.1M] r-x/r-x SM=COW ...t_id=e31fb63b
Application Specific Information:
abort() called
Error Formulating Crash Report:
PC register does not match crashing frame (0x0 vs 0x7FF892AD6A78)
Thread 0 Crashed:: tid_103 Dispatch queue: com.apple.main-thread
0 ??? 0x7ff892ad6a78 ???
1 libsystem_kernel.dylib 0x7ff80251e7a2 __pthread_kill + 10
2 libsystem_pthread.dylib 0x7ff802556f30 pthread_kill + 262
3 libsystem_c.dylib 0x7ff802475a49 abort + 126
4 mono-sgen64 0x102aecade mono_post_native_crash_handler + 14 (mini-posix.c:1169)
5 mono-sgen64 0x102a844a4 mono_handle_native_crash + 468 (mini-exceptions.c:3437)
6 mono-sgen64 0x102ae67f6 altstack_handle_and_restore + 230 (exceptions-amd64.c:879)
7 SkyLight 0x7ff807dd42c3 SLDisplayBounds + 23
8 ??? 0x112a9004c ???
9 ??? 0x10bc345ab ???
10 mono-sgen64 0x1029e1352 mono_jit_runtime_invoke + 2354 (mini-runtime.c:3217)
11 mono-sgen64 0x102bf27e2 do_runtime_invoke + 60 (object.c:3052) [inlined]
12 mono-sgen64 0x102bf27e2 mono_runtime_try_invoke + 146 (object.c:3161)
13 mono-sgen64 0x102bf1408 mono_runtime_class_init_full + 872 (object.c:551)
14 mono-sgen64 0x1029d8d5c mono_jit_compile_method_inner + 1228 (mini.c:4206)
15 mono-sgen64 0x1029dc8aa mono_jit_compile_method_with_opt + 2682 (mini-runtime.c:2475)
16 mono-sgen64 0x102a86f2e common_call_trampoline + 1390 (mini-trampolines.c:635)
17 mono-sgen64 0x102a86970 mono_magic_trampoline + 96 (mini-trampolines.c:775)
18 ??? 0x10ba00393 ???
19 ??? 0x112a8e9a3 ???
Thread 1:: com.apple.rosetta.exceptionserver
0 runtime 0x7ff7fff80294 0x7ff7fff7c000 + 17044
Thread 2:: SGen worker
0 ??? 0x7ff892ad6a78 ???
1 libsystem_kernel.dylib 0x7ff80251a5ce __psynch_cvwait + 10
2 libsystem_pthread.dylib 0x7ff80255776b _pthread_cond_wait + 1211
3 mono-sgen64 0x102cb0b1e mono_os_cond_wait + 19 (mono-os-mutex.h:219) [inlined]
4 mono-sgen64 0x102cb0b1e get_work + 33 (sgen-thread-pool.c:165) [inlined]
5 mono-sgen64 0x102cb0b1e thread_func + 542 (sgen-thread-pool.c:196)
6 libsystem_pthread.dylib 0x7ff802557202 _pthread_start + 99
7 libsystem_pthread.dylib 0x7ff802552bab thread_start + 15
Thread 3:: Finalizer
0 ??? 0x7ff892ad6a78 ???
1 libsystem_kernel.dylib 0x7ff8025179aa semaphore_wait_trap + 10
2 mono-sgen64 0x102c5d6da mono_os_sem_wait + 11 (mono-os-semaphore.h:84) [inlined]
3 mono-sgen64 0x102c5d6da mono_coop_sem_wait + 37 (mono-coop-semaphore.h:41) [inlined]
4 mono-sgen64 0x102c5d6da finalizer_thread + 618 (gc.c:965)
5 mono-sgen64 0x102c1bc4d start_wrapper_internal + 67 (threads.c:1233) [inlined]
6 mono-sgen64 0x102c1bc4d start_wrapper + 813 (threads.c:1308)
7 libsystem_pthread.dylib 0x7ff802557202 _pthread_start + 99
8 libsystem_pthread.dylib 0x7ff802552bab thread_start + 15
Thread 4:: Debugger agent
0 ??? 0x7ff892ad6a78 ???
1 libsystem_kernel.dylib 0x7ff80251b13a __recvfrom + 10
2 mono-sgen64 0x102b39a0e socket_transport_recv + 94 (debugger-agent.c:1156)
3 mono-sgen64 0x102b28406 transport_recv + 57 (debugger-agent.c:1578) [inlined]
4 mono-sgen64 0x102b28406 debugger_thread + 358 (debugger-agent.c:10196)
5 mono-sgen64 0x102c1bc4d start_wrapper_internal + 67 (threads.c:1233) [inlined]
6 mono-sgen64 0x102c1bc4d start_wrapper + 813 (threads.c:1308)
7 libsystem_pthread.dylib 0x7ff802557202 _pthread_start + 99
8 libsystem_pthread.dylib 0x7ff802552bab thread_start + 15
Thread 5:
0 runtime 0x7ff7fff9e94c 0x7ff7fff7c000 + 141644
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x00007fae32032800 rsi: 0x0000000203282240 rbp: 0x3d3d3d3d3d3d3d3d rsp: 0x0000000309ca7f58
r8: 0x0000000309ca85c8 r9: 0x3d3d3d3d3d3d3d3d r10: 0x0000000000000000 r11: 0x3d3d3d3d3d3d3d3d
r12: 0x0000000000000103 r13: 0x00007fae32804fe0 r14: 0x0000000203282240 r15: 0x0000000000000016
rip: <unavailable> rfl: 0x0000000000000287
tmp0: 0xffffffffffffffff tmp1: 0x00007ff892ad6a4c tmp2: 0x00007ff80251e798
Binary Images:
0x2031d6000 - 0x203275fff dyld (*) <ab17bf63-259b-3b48-8d70-863166a2191c> /usr/lib/dyld
0x112805000 - 0x1128cefff libmono-native-compat.0.dylib (*) <aab44b67-849c-3757-87a3-fafa31b03cbf> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libmono-native-compat.0.dylib
0x110a5a000 - 0x110adffff libgdiplus.0.dylib (*) <60ad36e8-3001-3c45-941a-c8d1448e8835> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libgdiplus.0.dylib
0x110de1000 - 0x110ec9fff libglib-2.0.0.dylib (*) <b19cba49-7ef5-3eaa-a13a-1e3abf19ddaa> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libglib-2.0.0.dylib
0x110939000 - 0x110947fff libintl.8.dylib (*) <c313f1e2-0a71-332e-81f5-215c9103c309> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libintl.8.dylib
0x1112e3000 - 0x1113f4fff libcairo.2.dylib (*) <f4f02d32-bd68-359f-8e28-8a5e5bbe21d3> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libcairo.2.dylib
0x111daa000 - 0x112115fff libpixman-1.0.dylib (*) <a801cbea-e141-3ee1-99f0-4f8287c45330> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libpixman-1.0.dylib
0x111027000 - 0x1110b2fff libtiff.5.dylib (*) <58e236fa-2132-39c6-a3c6-c95a86cb2417> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libtiff.5.dylib
0x110bb8000 - 0x110c07fff libjpeg.8.dylib (*) <48baed82-0be3-3e4b-87bd-31815f8c058d> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libjpeg.8.dylib
0x11096f000 - 0x110977fff libgif.4.1.6.dylib (*) <86e44891-1bc4-353d-afb8-01561892fb81> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libgif.4.1.6.dylib
0x110c92000 - 0x110cd0fff libfontconfig.1.dylib (*) <5f4dd15a-a147-3e57-a49d-fd1189baf90a> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libfontconfig.1.dylib
0x1117b9000 - 0x11186afff libfreetype.6.dylib (*) <0a652936-3b31-3b42-a9d4-94db335ea570> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libfreetype.6.dylib
0x110d43000 - 0x110d71fff libpng14.14.dylib (*) <e89791af-55d0-356e-87be-535b2c2d6a7d> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libpng14.14.dylib
0x11117c000 - 0x1111adfff libexpat.1.6.7.dylib (*) <f6b18c03-5e44-3dda-85d8-468511afc927> /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/libexpat.1.6.7.dylib
0x7ff7fff7c000 - 0x7ff7fffabfff runtime (*) <c4c97159-5c72-3e75-ba2d-d6ca98ea626f> /usr/libexec/rosetta/runtime
0x10b4b0000 - 0x10b503fff libRosettaRuntime (*) <7af8ba1e-5c4d-393d-99cd-92566f60c450> /Library/Apple/*/libRosettaRuntime
0x1029cd000 - 0x102dacfff mono-sgen64 (*) <63e752db-b3e0-3b6f-bda8-339243be6362> /Library/Frameworks/Mono.framework/Versions/6.12.0/bin/mono-sgen64
0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
0x7ff802516000 - 0x7ff802550ff7 libsystem_kernel.dylib (*) <9927a0a9-dfa8-3ffa-88d8-62055f37a137> /usr/lib/system/libsystem_kernel.dylib
0x7ff802551000 - 0x7ff80255cfff libsystem_pthread.dylib (*) <a9ba8a53-d774-3fe9-8bde-64187bff7ea9> /usr/lib/system/libsystem_pthread.dylib
0x7ff8023f6000 - 0x7ff80247dfff libsystem_c.dylib (*) <29a0020e-3766-39df-80fe-9aa731847daa> /usr/lib/system/libsystem_c.dylib
0x7ff807b02000 - 0x7ff807f59ffa com.apple.SkyLight (1.600.0) <2c47c41f-ba8a-3c0a-8ff7-e7eeb2895115> /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=433.7M resident=0K(0%) swapped_out_or_unallocated=433.7M(100%)
Writable regions: Total=1.1G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.1G(100%)
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Activity Tracing 256K 1
ColorSync 232K 28
CoreGraphics 8K 1
Kernel Alloc Once 8K 1
MALLOC 934.2M 27
MALLOC guard page 192K 12
Rosetta Arena 4096K 2
Rosetta Generic 5960K 1487
Rosetta IndirectBranch 768K 2
Rosetta JIT 128.0M 1
Rosetta Return Stack 120K 12
Rosetta Thread Context 120K 12
STACK GUARD 4K 1
Stack 13.0M 7
Stack Guard 56.1M 6
VM_ALLOCATE 28.6M 94
VM_ALLOCATE (reserved) 8276K 8 reserved VM address space (unallocated)
__DATA 15.8M 297
__DATA_CONST 11.0M 177
__DATA_DIRTY 465K 93
__FONT_DATA 2352 1
__LINKEDIT 195.9M 21
__OBJC_RO 71.1M 1
__OBJC_RW 2166K 2
__TEXT 237.8M 314
dyld private memory 260K 2
mapped file 7.4G 494
shared memory 804K 14
unshared pmap 5808K 4
=========== ======= =======
TOTAL 9.1G 3122
TOTAL, minus reserved VM space 9.0G 3122
-----------
Full Report
-----------
{"app_name":"mono-sgen64","timestamp":"2023-12-31 09:16:37.00 -0500","app_version":"","slice_uuid":"63e752db-b3e0-3b6f-bda8-339243be6362","build_version":"","platform":1,"share_with_app_devs":1,"is_first_party":1,"bug_type":"309","os_version":"macOS 14.2.1 (23C71)","roots_installed":0,"incident_id":"180C933C-509B-4EDD-83F4-999F931B7DF5","name":"mono-sgen64"}
{
"uptime" : 26000,
"procRole" : "Foreground",
"version" : 2,
"userID" : 501,
"deployVersion" : 210,
"modelCode" : "MacBookAir10,1",
"coalitionID" : 7111,
"osVersion" : {
"train" : "macOS 14.2.1",
"build" : "23C71",
"releaseType" : "User"
},
"captureTime" : "2023-12-31 09:16:18.9078 -0500",
"codeSigningMonitor" : 1,
"incident" : "180C933C-509B-4EDD-83F4-999F931B7DF5",
"pid" : 8841,
"translated" : true,
"cpuType" : "X86-64",
"roots_installed" : 0,
"bug_type" : "309",
"procLaunch" : "2023-12-31 09:16:12.4837 -0500",
"procStartAbsTime" : 627099828339,
"procExitAbsTime" : 627252953495,
"procName" : "mono-sgen64",
"procPath" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/bin\/mono",
"parentProc" : "VisualStudio",
"parentPid" : 8674,
"coalitionName" : "com.microsoft.visual-studio",
"crashReporterKey" : "A82B91F0-07E7-2842-B234-B96C6C6D0EE0",
"responsiblePid" : 8674,
"responsibleProc" : "VisualStudio",
"codeSigningID" : "mono-sgen64-5555494463e752dbb3e03b6fbda8339243be6362",
"codeSigningTeamID" : "UBF8T346G9",
"codeSigningFlags" : 570491649,
"codeSigningValidationCategory" : 6,
"codeSigningTrustLevel" : 4294967295,
"wakeTime" : 2376,
"sleepWakeUUID" : "5E25C0D0-43E2-4995-8784-1B3CA9FAFAFC",
"sip" : "enabled",
"vmRegionInfo" : "0x11 is not in any region. Bytes before following region: 140722857312239\n REGION TYPE START - END [ VSIZE] PRT\/MAX SHRMOD REGION DETAIL\n UNUSED SPACE AT START\n---> \n mapped file 7ffc97ec0000-7ffcc08d8000 [650.1M] r-x\/r-x SM=COW ...t_id=e31fb63b",
"exception" : {"codes":"0x0000000000000001, 0x0000000000000011","rawCodes":[1,17],"type":"EXC_BAD_ACCESS","signal":"SIGABRT","subtype":"KERN_INVALID_ADDRESS at 0x0000000000000011"},
"termination" : {"flags":0,"code":6,"namespace":"SIGNAL","indicator":"Abort trap: 6","byProc":"mono-sgen64","byPid":8841},
"vmregioninfo" : "0x11 is not in any region. Bytes before following region: 140722857312239\n REGION TYPE START - END [ VSIZE] PRT\/MAX SHRMOD REGION DETAIL\n UNUSED SPACE AT START\n---> \n mapped file 7ffc97ec0000-7ffcc08d8000 [650.1M] r-x\/r-x SM=COW ...t_id=e31fb63b",
"asi" : {"libsystem_c.dylib":["abort() called"]},
"extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
"faultingThread" : 0,
"threads" : [{"threadState":{"flavor":"x86_THREAD_STATE","rbp":{"value":4412750543122677053},"r12":{"value":259},"rosetta":{"tmp2":{"value":140703167539096},"tmp1":{"value":140705589455436},"tmp0":{"value":18446744073709551615}},"rbx":{"value":0},"r8":{"value":13049169352},"r15":{"value":22},"r10":{"value":0},"rdx":{"value":0},"rdi":{"value":140386140104704},"r9":{"value":4412750543122677053},"r13":{"value":140386148306912},"rflags":{"value":647},"rax":{"value":0},"rsp":{"value":13049167704},"r11":{"value":4412750543122677053},"rcx":{"value":0},"r14":{"value":8642896448,"symbolLocation":0,"symbol":"_main_thread"},"rsi":{"value":8642896448,"symbolLocation":0,"symbol":"_main_thread"}},"id":260183,"triggered":true,"name":"tid_103","queue":"com.apple.main-thread","frames":[{"imageOffset":140705589455480,"imageIndex":17},{"imageOffset":34722,"symbol":"__pthread_kill","symbolLocation":10,"imageIndex":18},{"imageOffset":24368,"symbol":"pthread_kill","symbolLocation":262,"imageIndex":19},{"imageOffset":522825,"symbol":"abort","symbolLocation":126,"imageIndex":20},{"imageOffset":1178334,"sourceLine":1169,"sourceFile":"mini-posix.c","symbol":"mono_post_native_crash_handler","imageIndex":16,"symbolLocation":14},{"imageOffset":750756,"sourceLine":3437,"sourceFile":"mini-exceptions.c","symbol":"mono_handle_native_crash","imageIndex":16,"symbolLocation":468},{"imageOffset":1153014,"sourceLine":879,"sourceFile":"exceptions-amd64.c","symbol":"altstack_handle_and_restore","imageIndex":16,"symbolLocation":230},{"imageOffset":2958019,"symbol":"SLDisplayBounds","symbolLocation":23,"imageIndex":21},{"imageOffset":4608032844,"imageIndex":17},{"imageOffset":4492314027,"imageIndex":17},{"imageOffset":82770,"sourceLine":3217,"sourceFile":"mini-runtime.c","symbol":"mono_jit_runtime_invoke","imageIndex":16,"symbolLocation":2354},{"symbol":"do_runtime_invoke","inline":true,"imageIndex":16,"imageOffset":2250722,"symbolLocation":60,"sourceLine":3052,"sourceFile":"object.c"},{"imageOffset":2250722,"sourceLine":3161,"sourceFile":"object.c","symbol":"mono_runtime_try_invoke","imageIndex":16,"symbolLocation":146},{"imageOffset":2245640,"sourceLine":551,"sourceFile":"object.c","symbol":"mono_runtime_class_init_full","imageIndex":16,"symbolLocation":872},{"imageOffset":48476,"sourceLine":4206,"sourceFile":"mini.c","symbol":"mono_jit_compile_method_inner","imageIndex":16,"symbolLocation":1228},{"imageOffset":63658,"sourceLine":2475,"sourceFile":"mini-runtime.c","symbol":"mono_jit_compile_method_with_opt","imageIndex":16,"symbolLocation":2682},{"imageOffset":761646,"sourceLine":635,"sourceFile":"mini-trampolines.c","symbol":"common_call_trampoline","imageIndex":16,"symbolLocation":1390},{"imageOffset":760176,"sourceLine":775,"sourceFile":"mini-trampolines.c","symbol":"mono_magic_trampoline","imageIndex":16,"symbolLocation":96},{"imageOffset":4490003347,"imageIndex":17},{"imageOffset":4608027043,"imageIndex":17}]},{"id":260185,"name":"com.apple.rosetta.exceptionserver","threadState":{"flavor":"x86_THREAD_STATE","rbp":{"value":9908489551872},"r12":{"value":4386125800,"region":"<translation info unavailable>"},"rosetta":{"tmp2":{"value":0},"tmp1":{"value":128690105114387},"tmp0":{"value":0}},"rbx":{"value":128690105114387},"r8":{"value":2307},"r15":{"value":5972692992},"r10":{"value":0},"rdx":{"value":0},"rdi":{"value":0},"r9":{"value":24339},"r13":{"value":4484848512},"rflags":{"value":514},"rax":{"value":268451845},"rsp":{"value":0},"r11":{"value":17},"rcx":{"value":17314086914},"r14":{"value":140705725008552},"rsi":{"value":2616}},"frames":[{"imageOffset":17044,"imageIndex":14}]},{"id":260186,"name":"SGen worker","threadState":{"flavor":"x86_THREAD_STATE","rbp":{"value":161},"r12":{"value":0},"rosetta":{"tmp2":{"value":140703167522244},"tmp1":{"value":140705589455436},"tmp0":{"value":18446744073709551615}},"rbx":{"value":0},"r8":{"value":140703167779277,"symbolLocation":0,"symbol":"_pthread_psynch_cond_cleanup"},"r15":{"value":0},"r10":{"value":0},"rdx":{"value":0},"rdi":{"value":0},"r9":{"value":161},"r13":{"value":4294967552},"rflags":{"value":658},"rax":{"value":260},"rsp":{"value":0},"r11":{"value":0},"rcx":{"value":0},"r14":{"value":13049708544},"rsi":{"value":0}},"frames":[{"imageOffset":140705589455480,"imageIndex":17},{"imageOffset":17870,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":18},{"imageOffset":26475,"symbol":"_pthread_cond_wait","symbolLocation":1211,"imageIndex":19},{"symbol":"mono_os_cond_wait","inline":true,"imageIndex":16,"imageOffset":3029790,"symbolLocation":19,"sourceLine":219,"sourceFile":"mono-os-mutex.h"},{"symbol":"get_work","inline":true,"imageIndex":16,"imageOffset":3029790,"symbolLocation":33,"sourceLine":165,"sourceFile":"sgen-thread-pool.c"},{"imageOffset":3029790,"sourceLine":196,"sourceFile":"sgen-thread-pool.c","symbol":"thread_func","imageIndex":16,"symbolLocation":542},{"imageOffset":25090,"symbol":"_pthread_start","symbolLocation":99,"imageIndex":19},{"imageOffset":7083,"symbol":"thread_start","symbolLocation":15,"imageIndex":19}]},{"id":260188,"name":"Finalizer","threadState":{"flavor":"x86_THREAD_STATE","rbp":{"value":0},"r12":{"value":13051817672},"rosetta":{"tmp2":{"value":4604286144},"tmp1":{"value":140705589455432},"tmp0":{"value":18446744073709551615}},"rbx":{"sourceLine":130,"value":4341955174,"sourceFile":"mono-threads-state-machine.c","symbol":"check_thread_state","symbolLocation":118},"r8":{"value":4342285110},"r15":{"value":4343019488,"symbolLocation":0,"symbol":"mono_profiler_state"},"r10":{"sourceLine":130,"value":4341955174,"sourceFile":"mono-threads-state-machine.c","symbol":"check_thread_state","symbolLocation":118},"rdx":{"value":0},"rdi":{"value":13051817672},"r9":{"value":0},"r13":{"value":4342952280,"symbolLocation":0,"symbol":"finalizer_sem"},"rflags":{"value":663},"rax":{"value":14},"rsp":{"value":140386156718104},"r11":{"value":4343019488,"symbolLocation":0,"symbol":"mono_profiler_state"},"rcx":{"value":4341955316},"r14":{"value":140386156718080},"rsi":{"value":4343019488,"symbolLocation":0,"symbol":"mono_profiler_state"}},"frames":[{"imageOffset":140705589455480,"imageIndex":17},{"imageOffset":6570,"symbol":"semaphore_wait_trap","symbolLocation":10,"imageIndex":18},{"symbol":"mono_os_sem_wait","inline":true,"imageIndex":16,"imageOffset":2688730,"symbolLocation":11,"sourceLine":84,"sourceFile":"mono-os-semaphore.h"},{"symbol":"mono_coop_sem_wait","inline":true,"imageIndex":16,"imageOffset":2688730,"symbolLocation":37,"sourceLine":41,"sourceFile":"mono-coop-semaphore.h"},{"imageOffset":2688730,"sourceLine":965,"sourceFile":"gc.c","symbol":"finalizer_thread","imageIndex":16,"symbolLocation":618},{"symbol":"start_wrapper_internal","inline":true,"imageIndex":16,"imageOffset":2419789,"symbolLocation":67,"sourceLine":1233,"sourceFile":"threads.c"},{"imageOffset":2419789,"sourceLine":1308,"sourceFile":"threads.c","symbol":"start_wrapper","imageIndex":16,"symbolLocation":813},{"imageOffset":25090,"symbol":"_pthread_start","symbolLocation":99,"imageIndex":19},{"imageOffset":7083,"symbol":"thread_start","symbolLocation":15,"imageIndex":19}]},{"id":260189,"name":"Debugger agent","threadState":{"flavor":"x86_THREAD_STATE","rbp":{"value":0},"r12":{"value":0},"rosetta":{"tmp2":{"value":140703167525168},"tmp1":{"value":140705589455436},"tmp0":{"value":18446744073709551615}},"rbx":{"value":0},"r8":{"value":140386140076032},"r15":{"value":0},"r10":{"value":0},"rdx":{"value":11},"rdi":{"value":4342143216},"r9":{"value":0},"r13":{"value":0},"rflags":{"value":646},"rax":{"value":4},"rsp":{"value":0},"r11":{"value":0},"rcx":{"value":0},"r14":{"value":11},"rsi":{"value":13053926304}},"frames":[{"imageOffset":140705589455480,"imageIndex":17},{"imageOffset":20794,"symbol":"__recvfrom","symbolLocation":10,"imageIndex":18},{"imageOffset":1493518,"sourceLine":1156,"sourceFile":"debugger-agent.c","symbol":"socket_transport_recv","imageIndex":16,"symbolLocation":94},{"symbol":"transport_recv","inline":true,"imageIndex":16,"imageOffset":1422342,"symbolLocation":57,"sourceLine":1578,"sourceFile":"debugger-agent.c"},{"imageOffset":1422342,"sourceLine":10196,"sourceFile":"debugger-agent.c","symbol":"debugger_thread","imageIndex":16,"symbolLocation":358},{"symbol":"start_wrapper_internal","inline":true,"imageIndex":16,"imageOffset":2419789,"symbolLocation":67,"sourceLine":1233,"sourceFile":"threads.c"},{"imageOffset":2419789,"sourceLine":1308,"sourceFile":"threads.c","symbol":"start_wrapper","imageIndex":16,"symbolLocation":813},{"imageOffset":25090,"symbol":"_pthread_start","symbolLocation":99,"imageIndex":19},{"imageOffset":7083,"symbol":"thread_start","symbolLocation":15,"imageIndex":19}]},{"id":260196,"frames":[{"imageOffset":141644,"imageIndex":14}],"threadState":{"flavor":"x86_THREAD_STATE","rbp":{"value":18446744073709551615},"r12":{"value":0},"rosetta":{"tmp2":{"value":0},"tmp1":{"value":0},"tmp0":{"value":0}},"rbx":{"value":0},"r8":{"value":0},"r15":{"value":0},"r10":{"value":0},"rdx":{"value":13054496768},"rdi":{"value":0},"r9":{"value":0},"r13":{"value":0},"rflags":{"value":531},"rax":{"value":13055033344},"rsp":{"value":409604},"r11":{"value":0},"rcx":{"value":11267},"r14":{"value":0},"rsi":{"value":0}}}],
"usedImages" : [
{
"source" : "P",
"arch" : "x86_64",
"base" : 8642191360,
"size" : 655360,
"uuid" : "ab17bf63-259b-3b48-8d70-863166a2191c",
"path" : "\/usr\/lib\/dyld",
"name" : "dyld"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4605366272,
"size" : 827392,
"uuid" : "aab44b67-849c-3757-87a3-fafa31b03cbf",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libmono-native-compat.0.dylib",
"name" : "libmono-native-compat.0.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4574257152,
"size" : 548864,
"uuid" : "60ad36e8-3001-3c45-941a-c8d1448e8835",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libgdiplus.0.dylib",
"name" : "libgdiplus.0.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4577955840,
"size" : 954368,
"uuid" : "b19cba49-7ef5-3eaa-a13a-1e3abf19ddaa",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libglib-2.0.0.dylib",
"name" : "libglib-2.0.0.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4573073408,
"size" : 61440,
"uuid" : "c313f1e2-0a71-332e-81f5-215c9103c309",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libintl.8.dylib",
"name" : "libintl.8.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4583206912,
"size" : 1122304,
"uuid" : "f4f02d32-bd68-359f-8e28-8a5e5bbe21d3",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libcairo.2.dylib",
"name" : "libcairo.2.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4594507776,
"size" : 3588096,
"uuid" : "a801cbea-e141-3ee1-99f0-4f8287c45330",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libpixman-1.0.dylib",
"name" : "libpixman-1.0.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4580339712,
"size" : 573440,
"uuid" : "58e236fa-2132-39c6-a3c6-c95a86cb2417",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libtiff.5.dylib",
"name" : "libtiff.5.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4575690752,
"size" : 327680,
"uuid" : "48baed82-0be3-3e4b-87bd-31815f8c058d",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libjpeg.8.dylib",
"name" : "libjpeg.8.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4573294592,
"size" : 36864,
"uuid" : "86e44891-1bc4-353d-afb8-01561892fb81",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libgif.4.1.6.dylib",
"name" : "libgif.4.1.6.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4576583680,
"size" : 258048,
"uuid" : "5f4dd15a-a147-3e57-a49d-fd1189baf90a",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libfontconfig.1.dylib",
"name" : "libfontconfig.1.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4588277760,
"size" : 729088,
"uuid" : "0a652936-3b31-3b42-a9d4-94db335ea570",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libfreetype.6.dylib",
"name" : "libfreetype.6.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4577308672,
"size" : 192512,
"uuid" : "e89791af-55d0-356e-87be-535b2c2d6a7d",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libpng14.14.dylib",
"name" : "libpng14.14.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4581736448,
"size" : 204800,
"uuid" : "f6b18c03-5e44-3dda-85d8-468511afc927",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/lib\/libexpat.1.6.7.dylib",
"name" : "libexpat.1.6.7.dylib"
},
{
"source" : "P",
"arch" : "arm64",
"base" : 140703128076288,
"size" : 196608,
"uuid" : "c4c97159-5c72-3e75-ba2d-d6ca98ea626f",
"path" : "\/usr\/libexec\/rosetta\/runtime",
"name" : "runtime"
},
{
"source" : "P",
"arch" : "arm64",
"base" : 4484431872,
"size" : 344064,
"uuid" : "7af8ba1e-5c4d-393d-99cd-92566f60c450",
"path" : "\/Library\/Apple\/*\/libRosettaRuntime",
"name" : "libRosettaRuntime"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 4338798592,
"size" : 4063232,
"uuid" : "63e752db-b3e0-3b6f-bda8-339243be6362",
"path" : "\/Library\/Frameworks\/Mono.framework\/Versions\/6.12.0\/bin\/mono-sgen64",
"name" : "mono-sgen64"
},
{
"size" : 0,
"source" : "A",
"base" : 0,
"uuid" : "00000000-0000-0000-0000-000000000000"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703167504384,
"size" : 241656,
"uuid" : "9927a0a9-dfa8-3ffa-88d8-62055f37a137",
"path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
"name" : "libsystem_kernel.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703167746048,
"size" : 49152,
"uuid" : "a9ba8a53-d774-3fe9-8bde-64187bff7ea9",
"path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
"name" : "libsystem_pthread.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703166324736,
"size" : 557056,
"uuid" : "29a0020e-3766-39df-80fe-9aa731847daa",
"path" : "\/usr\/lib\/system\/libsystem_c.dylib",
"name" : "libsystem_c.dylib"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 140703257600000,
"CFBundleShortVersionString" : "1.600.0",
"CFBundleIdentifier" : "com.apple.SkyLight",
"size" : 4554747,
"uuid" : "2c47c41f-ba8a-3c0a-8ff7-e7eeb2895115",
"path" : "\/System\/Library\/PrivateFrameworks\/SkyLight.framework\/Versions\/A\/SkyLight",
"name" : "SkyLight"
}
],
"sharedCache" : {
"base" : 140703163334656,
"size" : 21474836480,
"uuid" : "aa32606f-3f8a-36dc-89ab-9c1bd7bf3104"
},
"vmSummary" : "ReadOnly portion of Libraries: Total=433.7M resident=0K(0%) swapped_out_or_unallocated=433.7M(100%)\nWritable regions: Total=1.1G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.1G(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nActivity Tracing 256K 1 \nColorSync 232K 28 \nCoreGraphics 8K 1 \nKernel Alloc Once 8K 1 \nMALLOC 934.2M 27 \nMALLOC guard page 192K 12 \nRosetta Arena 4096K 2 \nRosetta Generic 5960K 1487 \nRosetta IndirectBranch 768K 2 \nRosetta JIT 128.0M 1 \nRosetta Return Stack 120K 12 \nRosetta Thread Context 120K 12 \nSTACK GUARD 4K 1 \nStack 13.0M 7 \nStack Guard 56.1M 6 \nVM_ALLOCATE 28.6M 94 \nVM_ALLOCATE (reserved) 8276K 8 reserved VM address space (unallocated)\n__DATA 15.8M 297 \n__DATA_CONST 11.0M 177 \n__DATA_DIRTY 465K 93 \n__FONT_DATA 2352 1 \n__LINKEDIT 195.9M 21 \n__OBJC_RO 71.1M 1 \n__OBJC_RW 2166K 2 \n__TEXT 237.8M 314 \ndyld private memory 260K 2 \nmapped file 7.4G 494 \nshared memory 804K 14 \nunshared pmap 5808K 4 \n=========== ======= ======= \nTOTAL 9.1G 3122 \nTOTAL, minus reserved VM space 9.0G 3122 \n",
"legacyInfo" : {
"threadTriggered" : {
"name" : "tid_103",
"queue" : "com.apple.main-thread"
}
},
"logWritingSignature" : "826de283db3c2709ddec086f7901f8e116b7d68d",
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "62745b8e85854550ad70b6e4",
"factorPackIds" : {
"SIRI_TTS_DEVICE_TRAINING" : "6539d7f333b9b7499c6f1b63"
},
"deploymentId" : 240000073
},
{
"rolloutId" : "5fb4245a1bbfe8005e33a1e1",
"factorPackIds" : {
},
"deploymentId" : 240000021
}
],
"experiments" : [
]
},
"reportNotes" : [
"PC register does not match crashing frame (0x0 vs 0x7FF892AD6A78)"
]
}
Model: MacBookAir10,1, BootROM 10151.61.4, proc 8:4:4 processors, 8 GB, SMC
Graphics: Apple M1, Apple M1, Built-In
Display: Color LCD, 2560 x 1600 Retina, Main, MirrorOff, Online
Memory Module: LPDDR4, Hynix
AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x4378), wl0: Aug 26 2023 17:55:53 version 18.20.439.0.7.8.163 FWID 01-f9b9247b
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB31Bus
Thunderbolt Bus: MacBook Air, Apple Inc.
Interrupt calls to VCPU need to be replaced by native C# API. See Wiki for details
I got an IndexOutOfRangeException at this line:
this.oCPU.AX.Word = (ushort)this.oParent.GameState.Players[this.oCPU.AX.Word].Continents[this.oCPU.ReadUInt16(this.oCPU.DS.Word, 0x6548)].Strategy;
this.oCPU.AX.Word
is 8 and this.oParent.GameState.Players
is length 8 (max index 7) so overflows. I was able to consistently trigger this state with Mongols on Earth in the second turn.
Stack trace
Loaded assembly: /home/debian/code/OpenCiv1/bin/Debug/OpenCiv1.exe
Loaded assembly: /usr/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll [External]
Loaded assembly: /usr/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll [External]
Loaded assembly: /usr/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll [External]
Loaded assembly: /usr/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll [External]
Loaded assembly: /usr/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.dll [External]
Thread started: #2
Thread started: #3
Loaded assembly: /usr/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll [External]
Loaded assembly: /usr/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll [External]
Thread started: <Thread Pool> #4
Thread started: <Thread Pool> #5
Thread started: <Thread Pool> #6
Thread started: <Thread Pool> #7
Loaded assembly: Microsoft.GeneratedCode [External]
Thread finished: <Thread Pool> #6
Thread finished: <Thread Pool> #5
Thread finished: <Thread Pool> #7
Thread finished: <Thread Pool> #4
Thread started: <Thread Pool> #8
Thread started: <Thread Pool> #9
Thread started: <Thread Pool> #10
Thread started: <Thread Pool> #11
Thread started: <Thread Pool> #12
Thread started: <Thread Pool> #13
Unhandled Exception:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at OpenCiv1.Segment_1d12.F0_1d12_0045 (System.Int16 cityID, System.Int16 flag) [0x16b6c] in /home/debian/code/OpenCiv1/Segments/Segment_1d12.cs:3617
at OpenCiv1.Segment_1ade.F0_1ade_0006 (System.Int16 playerID) [0x003df] in /home/debian/code/OpenCiv1/Segments/Segment_1ade.cs:61
at OpenCiv1.Segment_1238.F0_1238_0092 () [0x008e0] in /home/debian/code/OpenCiv1/Segments/Segment_1238.cs:173
at OpenCiv1.Segment_11a8.F0_11a8_0008_Main () [0x00805] in /home/debian/code/OpenCiv1/Segments/Segment_11a8.cs:152
at OpenCiv1.OpenCiv1.Start () [0x01947] in /home/debian/code/OpenCiv1/OpenCiv1.cs:390
at OpenCiv1.MainForm.GameThread () [0x00032] in /home/debian/code/OpenCiv1/MainForm.cs:589
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <d636f104d58046fd9b195699bcb1a744>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <d636f104d58046fd9b195699bcb1a744>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <d636f104d58046fd9b195699bcb1a744>:0
at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <d636f104d58046fd9b195699bcb1a744>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at OpenCiv1.Segment_1d12.F0_1d12_0045 (System.Int16 cityID, System.Int16 flag) [0x16b6c] in /home/debian/code/OpenCiv1/Segments/Segment_1d12.cs:3617
at OpenCiv1.Segment_1ade.F0_1ade_0006 (System.Int16 playerID) [0x003df] in /home/debian/code/OpenCiv1/Segments/Segment_1ade.cs:61
at OpenCiv1.Segment_1238.F0_1238_0092 () [0x008e0] in /home/debian/code/OpenCiv1/Segments/Segment_1238.cs:173
at OpenCiv1.Segment_11a8.F0_11a8_0008_Main () [0x00805] in /home/debian/code/OpenCiv1/Segments/Segment_11a8.cs:152
at OpenCiv1.OpenCiv1.Start () [0x01947] in /home/debian/code/OpenCiv1/OpenCiv1.cs:390
at OpenCiv1.MainForm.GameThread () [0x00032] in /home/debian/code/OpenCiv1/MainForm.cs:589
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <d636f104d58046fd9b195699bcb1a744>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <d636f104d58046fd9b195699bcb1a744>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <d636f104d58046fd9b195699bcb1a744>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <d636f104d58046fd9b195699bcb1a744>:0
at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <d636f104d58046fd9b195699bcb1a744>:0
Many functions need their internal variables which are now using VCPU stack mapped to real variables. See Wiki for details
…but a praise - thank you for that :) looking forward to new features by the way :)
All contributions are welcome.
For this stage of code reconstruction, the programmings skills needed are:
I'm not following enemy moves, even though it's enabled in game options.
Various crashes with error "Exception message: Index was outside the bounds of the array". To solve these, the decompiled code needs to be translated to managed code, see comment below.
There are some bugs currently as a result of incorrect UInt and Int assignment.
Variables types needs to be checked and compared with JCivED project documentation
To Reproduce
Load this save:
CIVIL0.zip
End the turn.
Right after discovering Electronics, the game crashes
I'm running on linux and using mono.
I'm getting this error when starting the application:
[ERROR] FATAL UNHANDLED EXCEPTION: System.Exception: Unknown 0x11 interrupt
at Disassembler.CPU.INT (System.Byte value) [0x005a1] in /home/markus/code/OpenCiv1/CPU/CPU.cs:1971
at OpenCiv1.Segment_1000.F0_1000_066a () [0x002bf] in /home/markus/code/OpenCiv1/Segments/Segment_1000.cs:977
at OpenCiv1.Segment_11a8.F0_11a8_02a4 () [0x001f4] in /home/markus/code/OpenCiv1/Segments/Segment_11a8.cs:404
at OpenCiv1.Overlay_2.F2_0000_0000 () [0x001b8] in /home/markus/code/OpenCiv1/Segments/Overlay_2.cs:46
at OpenCiv1.Segment_11a8.F0_11a8_0008_Main () [0x0012a] in /home/markus/code/OpenCiv1/Segments/Segment_11a8.cs:42
at OpenCiv1.OpenCiv1.Start () [0x0110a] in /home/markus/code/OpenCiv1/OpenCiv1.cs:445
at OpenCiv1.Program.Main () [0x00009] in /home/markus/code/OpenCiv1/Program.cs:38
PS. Is there anything stopping the application to be upgraded to .net 6 for better support on linux?
The registers are only ushort (UInt16) for now, but the code mainly uses short (Int16) data types which can later be replaced by int(s) (Int32). See Wiki for details
The dependency on Virtual CPU, registers and stacks need to be slowly removed from code. See Wiki for details
Describe the bug
After ending the turn, enemy cities sometimes disappear
To Reproduce
Steps to reproduce the behavior:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.