Add heuristic to detect when a scratchpad is in big endian format; Keep scratchpad...
[SquirrelJME.git] / route.mkd
blob367a9dee0e03646448a5cf3b16180b9688d59b25
1 # Release Goals Route
3 **SquirrelJME** follows a goal-oriented release plan rather than one of
4 fixed dates. This is to reduce stress and not put hard time limits but
5 more of an action-oriented plan to meet when it is time for releases.
7 Until all of the goals are met (or otherwise pushed back or dropped if
8 needed) the lowest version number will remain at _zero_. Otherwise, when the
9 goals are met the _Release Candidate_ process will start.
11 To reduce the possibility of releases failing due to issues, there will be a
12 release candidate as a kind of test to ensure that the release process works
13 and that **SquirrelJME** actually functions. There will be as many release
14 candidates as needed for the fixing of issues, however once the release is
15 determined to be stable enough it will then become an actual release and
16 get an even numbered release version.
18 ## Future
20 _Please note that this information may change over time and is just_
21 _speculation based on project planning._
23 ### 1.2.0/0.12.0
25  * _To Be Determined_
26  * [ ] Main Standard Libraries at **85%** Implementation.
28 ### 0.10.0
30 This is a future release and the specified changes are proposed.
32 This is a mostly interest driving version that is to see how many retro systems
33 _SquirrelJME_ can be put onto using the new compiler implementation.
35  * _To Be Determined_
36  * [ ] Virtual Machine: _AutumnCoat_:
37    * [ ] Supported Architectures:
38      * [ ] ARM
39      * [ ] m68k
40      * [ ] MIPS
41      * [ ] SH4
42      * [ ] SPARC
43    * [ ] Supported Archive Holders:
44      * [ ] Macintosh BinHex (Resource Fork Storage)
45    * [ ] Supported Linker Formats:
46      * [ ] Amiga Hunk
47      * [ ] Palm OS Applications
48        * [ ] ARM Applications 
49        * [ ] m68k Applications
50      * [ ] Preferred Executable Format
51      * [ ] Windows Executables (EXE)
52        * [ ] New Executable (16-bit)
53    * [ ] Supported Operating Systems:
54      * [ ] Amiga (m68k)
55      * [ ] Dreamcast
56      * [ ] Linux
57        * [ ] MIPS
58        * [ ] SPARC
59      * [ ] Mac OS Classic
60        * [ ] m68k
61        * [ ] PowerPC
62      * [ ] Mac OS X
63        * [ ] PowerPC
64      * [ ] Palm OS
65        * [ ] Palm OS 4.x and earlier
66        * [ ] Palm OS 5.x
67      * [ ] Windows
68        * [ ] 16-bit Windows 3.x
70 ## 0.8.0
72 This is a future release and the specified changes are proposed.
74 This version will contain the new _AutumnCoat_ compiler which will be
75 modernized and be able to support actual native executables.
77  * _To Be Determined_
78  * [ ] Virtual Machine: _AutumnCoat_:
79    * [ ] Streamlined and simplified code compiler
80    * [ ] Supported Architectures:
81      * [ ] PowerPC
82      * [ ] SummerCoat
83      * [ ] x86
84      * [ ] x86_64
85    * [ ] Supported Linker Formats:
86      * [ ] Executable Linker Format (ELF)
87      * [ ] Mach-O (Mac OS X)
88      * [ ] Raw Code Chunk
89      * [ ] SummerCoat ROM
90      * [ ] Windows Executables (EXE)
91        * [ ] Portable Executable (32-bit/64-bit)
92        * [ ] Extended 64-bit Support
93    * [ ] Supported Operating Systems:
94      * [ ] Linux
95        * [ ] PowerPC
96        * [ ] x86/x86_64
97      * [ ] Mac OS X
98        * [ ] PowerPC
99        * [ ] x86/x86_64
100      * [ ] Windows
101        * [ ] 32-bit Windows 9x/NT/2000/XP/7/8/10
102        * [ ] 64-bit Windows 10 
104 ### 0.6.0
106 This is a future release and the specified changes are proposed.
108 Will contain the vast majority of the API implementations which should be able
109 to run most software that exists.
111  * _To Be Determined_
112  * [ ] Additional Core Classes Implemented
113  * [ ] Additional Library Support:
114    * [ ] Add support for LG MultiMedia Phone Profile (MMPP) APIs
115    * [ ] Add support for Motorola APIs
116    * [ ] Add support for Nokia APIs
117    * [ ] Add support for NTT Docomo (a.k.a. i-Mode) APIs
118    * [ ] Add support for Samsung APIs
119    * [ ] Add support for Siemens APIs
120    * [ ] Add support for SK-VM APIs
121    * [ ] Add support for Sprint APIs
122    * [ ] Add support for Vodafone APIs
123    * [ ] Add support for WIPI APIs
124  * [ ] Audio Support
125  * [ ] HTTP Support
126  * [ ] Security Manager Support
127    * [ ] Checks
128    * [ ] Policies
129  * [ ] Software Development Kit, accessible via Gradle
130  * [ ] TCP/IP Support
131  * [ ] Virtual FileSystem Support
133 ## Current
135 ### 0.4.0
137 This is the second version of SquirrelJME which provides virtual machine
138 improvements.
140 This release existed through both the previous release plan and the now
141 current goal oriented releases, as such this list is more oriented into what
142 needs to be done.
144  * [ ] LCDUI Enhancement
145    * [ ] Accelerated Graphics
146    * [ ] Framebuffer Fallback
147    * [ ] Native UI Widgets (_PARTIAL_)
148  * [X] Modernization of SpringCoat
149  * [X] Modernization of the build system using Gradle.
150  * [ ] Software Floating Point (IEEE 754)
151    * [ ] 32-bit Float
152    * [ ] 64-bit Double
153  * [X] User Guide
154  * [ ] Virtual Machine: SummerCoat
155    * [X] Compilation of ROMs
156      * [X] Class Compilation
157      * [X] Gradle Tasks
158      * [X] Packaging Compiled Code into ROMs
159    * [ ] Native UI Widgets (_PARTIAL_)
160    * [ ] Refactoring and Cleanup
161  * [ ] Virtual machine: RatufaCoat
162    * [ ] Accelerated Graphics
163    * [ ] Built-In ROM
164    * [ ] Framebuffer
165    * [ ] LCDUI Support
166    * [ ] Refactoring and Cleanup
167      * [ ] Better Code Organization
168      * [X] CMake
169    * [X] RetroArch Support
170      * [X] Framebuffer
171      * [X] Input Controls
172      * [ ] Save States
173        * [ ] Saving
174        * [ ] Loading
175      * [ ] System Properties (Input as Cheats)
176    * [ ] SDL2 Support
177      * [ ] Framebuffer
178      * [ ] Input Controls
179  * [ ] Modern "Mid-Level" API implementations
180    * [X] Within _SpringCoat_
181    * [ ] Within _SummerCoat_
183 ## Released
184  * Additional Changes:
185    * Major refactoring to the source code so that the project is much easier
186      and quicker to develop for.
188 ### 0.2.0 (December 25, 2018)
190 This is the first version of SquirrelJME.
192 This release was before the goal-oriented release planning.
194  * Virtual Machine: SpringCoat
195    * Pure interpreter which runs on existing JVMs.