Merge branch 'tildearrow:master' into sysmgrtooltip_syschaninfo

This commit is contained in:
Eknous 2024-03-22 13:44:42 +04:00 committed by GitHub
commit aa99375eda
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 74 additions and 24 deletions

View file

@ -1,7 +1,12 @@
# IMPORTANT NOTICE
# EXTREMELY IMPORTANT NOTICE - PLEASE **READ**!!!!!!!
1. this section is exclusively for ISSUES related to Furnace (bugs, major annoyances and others).
2. this section is NOT for Suggestions, Questions, Showcase or any other Discussions that do not meet the criteria and definition of an ISSUE.
BY SUBMITTING AN ISSUE, YOU HEREBY AGREE TO COMPLY WITH THESE TERMS.
FAILURE TO DO SO MAY RESULT IN YOUR ISSUE BEING DECLARED VOID.
**ADDITIONALLY, FAILURE TO COMPLY WITH POINTS 1 AND 2 WILL RESULT IN THE INABILITY TO ISSUE FURTHER ISSUE REPORTS.**
1. this section is exclusively for ISSUES related to Furnace (bugs, major annoyances and others). ONLY THINGS THAT COUNT AS **ISSUES** (ad pedem litterae).
2. **THIS SECTION IS NOT FOR SUGGESTIONS, REQUESTS, QUESTIONS, SHOWCASE OR ANY OTHER DISCUSSIONS THAT DO NOT MEET THE CRITERIA AND DEFINITION OF AN __ISSUE__.**
- see the Discussions section if you wish to submit these.
3. check whether your issue has been reported already.
- go to the Issues section, and use the search bar that appears on top of the Issues list.
@ -33,7 +38,11 @@
- Linux: `~/.config/furnace/furnace.log`
- make sure to remove any personal information for privacy reasons.
BY SUBMITTING A TICKET, YOU HEREBY AGREE TO COMPLY WITH THESE TERMS.
FAILURE TO DO SO MAY RESULT IN YOUR TICKET BEING DECLARED VOID.
BY SUBMITTING AN ISSUE, YOU HEREBY AGREE TO COMPLY WITH THESE TERMS.
FAILURE TO DO SO MAY RESULT IN YOUR ISSUE BEING DECLARED VOID.
***END OF NOTICE*** --- REMOVE THIS NOTICE AFTER READING!
**ADDITIONALLY, FAILURE TO COMPLY WITH POINTS 1 AND 2 WILL RESULT IN THE INABILITY TO ISSUE FURTHER ISSUE REPORTS.**
***END OF NOTICE***
PLEASE REMOVE THIS NOTICE AFTER READING.
FAILURE TO REMOVE THIS NOTICE IS NEGLIGENCE.

View file

@ -2,7 +2,19 @@
contributions to Furnace are welcome!
# Getting ready
# Issue reports
if you find an issue with Furnace, see the Issues section.
# Suggestions and other types of discussions
see the Discussions section.
**DO NOT USE THE ISSUES SECTION FOR THESE - it is only for ISSUES.**
# Other
## Getting ready
log into your Github account, and click the Fork button in the header of the project's page.
@ -14,9 +26,9 @@ git clone git@github.com:USERNAME/furnace.git
(replace `USERNAME` with your username)
# Working
## Working
## Code
### Code
bug fixes, improvements and several other things accepted.
@ -84,11 +96,11 @@ additional guidelines:
- on a switch block, **always** put `default` last and not in any other position.
- I have fear of some C/C++ compilers ignoring the rest of cases upon hitting default.
## Do NOT Force-Push after submitting Pull Request
### Do NOT Force-Push after submitting Pull Request
if you do so, your pull request will be closed.
## Demo Songs
### Demo Songs
just put your demo song in `demos/`! be noted there are some guidelines:
@ -100,11 +112,11 @@ just put your demo song in `demos/`! be noted there are some guidelines:
- Pong: it is a joke system.
- the song shall be in Furnace file format.
# Finishing
## Finishing
after you've done your modifications, commit the changes and push.
then open your fork on GitHub and send a pull request.
# I don't know how to use Git but I want to contribute with a demo song
## I don't know how to use Git but I want to contribute with a demo song
you can also contact me directly! [find me here.](https://tildearrow.org/?p=contact)

View file

@ -23,7 +23,7 @@
#include <math.h>
#define CHIP_DIVIDER 32
#define CLOCK_DIVIDER 512 // for match to output rate
#define CLOCK_DIVIDER 128 // for match to output rate
#define rRead8(a) (nds.read8(a))
#define rWrite8(a,v) {if(!skipRegisterWrites) {nds.write8((a),(v)); regPool[(a)]=(v); if(dumpWrites) addWrite((a),(v)); }}

View file

@ -608,6 +608,8 @@ int DivPlatformNES::dispatch(DivCommand c) {
chan[c.chan].duty=c.value;
if (c.chan==3) { // noise
chan[c.chan].freqChanged=true;
} else if (c.chan==2 && isE) {
rWrite(0x4000+9,chan[c.chan].duty);
} else if (c.chan<2) {
rWrite(0x4000+c.chan*4,(chan[c.chan].active?((chan[c.chan].envMode<<4)|chan[c.chan].outVol):0x30)|((chan[c.chan].duty&3)<<6));
}

View file

@ -2056,7 +2056,7 @@ void DivEngine::registerSystems() {
);
sysDefs[DIV_SYSTEM_NDS]=new DivSysDef(
"NDS", NULL, 0xd6, 0, 16, false, true, 0, false, (1U<<DIV_SAMPLE_DEPTH_8BIT)|(1U<<DIV_SAMPLE_DEPTH_IMA_ADPCM)|(1U<<DIV_SAMPLE_DEPTH_16BIT), 32, 32,
"Nintendo DS", NULL, 0xd6, 0, 16, false, true, 0, false, (1U<<DIV_SAMPLE_DEPTH_8BIT)|(1U<<DIV_SAMPLE_DEPTH_IMA_ADPCM)|(1U<<DIV_SAMPLE_DEPTH_16BIT), 32, 32,
"a handheld video game console with two screens. it uses a stylus.",
{"Channel 1", "Channel 2", "Channel 3", "Channel 4", "Channel 5", "Channel 6", "Channel 7", "Channel 8", "Channel 9", "Channel 10", "Channel 11", "Channel 12", "Channel 13", "Channel 14", "Channel 15", "Channel 16"},
{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"},

View file

@ -179,7 +179,7 @@ const char* insTypes[DIV_INS_MAX+1][3]={
{"PowerNoise (noise)",ICON_FUR_NOISE,ICON_FUR_INS_POWERNOISE},
{"PowerNoise (slope)",ICON_FUR_SAW,ICON_FUR_INS_POWERNOISE_SAW},
{"Dave",ICON_FA_BAR_CHART,ICON_FUR_INS_DAVE},
{"NDS",ICON_FA_BAR_CHART,ICON_FUR_INS_NDS},
{"Nintendo DS",ICON_FA_BAR_CHART,ICON_FUR_INS_NDS},
{"GBA DMA",ICON_FA_GAMEPAD,ICON_FUR_INS_GBA_DMA},
{"GBA MinMod",ICON_FA_VOLUME_UP,ICON_FUR_INS_GBA_MINMOD},
{NULL,ICON_FA_QUESTION,ICON_FA_QUESTION}

View file

@ -202,16 +202,43 @@ void FurnaceGUI::drawNewSong() {
if (ImGui::Button("I'm feeling lucky")) {
if (sysCategories.size()==0) {
showError("no categories available! what in the world.");
ImGui::CloseCurrentPopup();
} else {
FurnaceGUISysCategory* newSystemCat=&sysCategories[rand()%sysCategories.size()];
if (newSystemCat->systems.size()==0) {
int tries=0;
for (tries=0; tries<50; tries++) {
FurnaceGUISysCategory* newSystemCat=&sysCategories[rand()%sysCategories.size()];
if (newSystemCat->systems.empty()) {
continue;
} else {
unsigned int selection=rand()%newSystemCat->systems.size();
if (newSystemCat->systems[selection].orig.empty() && newSystemCat->systems[selection].subDefs.empty()) continue;
if (!newSystemCat->systems[selection].subDefs.empty()) {
if (rand()%2) {
unsigned int subSel=rand()%newSystemCat->systems[selection].subDefs.size();
nextDesc=newSystemCat->systems[selection].subDefs[subSel].definition;
nextDescName=newSystemCat->systems[selection].subDefs[subSel].name;
accepted=true;
} else {
if (newSystemCat->systems[selection].orig.empty()) continue;
nextDesc=newSystemCat->systems[selection].definition;
nextDescName=newSystemCat->systems[selection].name;
accepted=true;
}
} else {
nextDesc=newSystemCat->systems[selection].definition;
nextDescName=newSystemCat->systems[selection].name;
accepted=true;
}
}
if (accepted) break;
}
if (tries>=50) {
showError("it appears you're extremely lucky today!");
ImGui::CloseCurrentPopup();
} else {
unsigned int selection=rand()%newSystemCat->systems.size();
nextDesc=newSystemCat->systems[selection].definition;
nextDescName=newSystemCat->systems[selection].name;
accepted=true;
}
}
}

View file

@ -3575,7 +3575,7 @@ void FurnaceGUI::drawSettings() {
UI_COLOR_CONFIG(GUI_COLOR_INSTR_POWERNOISE,"PowerNoise (noise)");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_POWERNOISE_SLOPE,"PowerNoise (slope)");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_DAVE,"Dave");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_NDS,"NDS");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_NDS,"Nintendo DS");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_GBA_DMA,"GBA DMA");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_GBA_MINMOD,"GBA MinMod");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_UNKNOWN,"Other/Unknown");